gcc和gdb的常用指令

2021-10-03 21:25:12 字數 1827 閱讀 3124

命令

作用-o

將命令的執行結果寫入檔案中,預設為a.out

-e預處理操作,生成預處理檔案

-s編譯操作,生成組合語言目標檔案

-c彙編操作,生成可重定位目標檔案

-i 將加入到頭檔案的搜尋目錄中,鏈結時在搜尋標準標頭檔案之前先在進行搜尋

-l 將加入到庫檔案的搜尋目錄中,鏈結時在搜尋標準標頭檔案之前先在進行搜尋

-d 將巨集定義為1

-d =

將巨集定義為

-v輸出版本號

-w不輸出警告資訊

-g生成除錯資訊

-pg加入剖析**,產生供gprof工具剖析用的統計資訊

-o 設定編譯優化級別,= 0,1,2,3,s,預設為1。其中0表示不優化,3為最高等級的優化,s為2.5

命令作用

gdb啟動gdb,隨後進入gdb除錯工具

gdb [可執行檔名]

啟動gdb並載入除錯檔案,隨後進入gdb除錯工具

file 《可執行檔名》

載入可執行檔案進行除錯

run [引數列表]

啟動已經載入的被除錯的程式,程式輸入的引數可選,用空格分隔

list [顯示物件]

顯示源**,其中顯示物件見下表

break [斷點]

設定斷點,斷點設定見下表。設定完斷點後,預設狀態是有效的

delete [斷點編號]

刪除某斷點

enable [斷點編號]

使某斷點有效

disable [斷點編號]

使某斷點無效

info [資訊型別]

檢視被除錯程式的資訊。如br檢視所有斷點的詳細資訊(包括斷點號);source檢視源**;stack檢視棧資訊;args檢視引數資訊

watch 《表示式》

觀察某個表示式的值是否改變,若改變,暫停程式

print 《表示式》

顯示某個表示式的值,該表示式中的變數必須是全域性的,或者在當前棧區可見

x /nfu address

顯示記憶體單元的值。/nfu設定輸出格式:n代表輸出個數,預設為1;f代表輸出格式,x為16進製制,d為帶符號10進製,u為無符號10進製,f為浮點數;u代表資料單元的大小,b為位元組,h為雙位元組,w為四位元組,g為八字節

step

進入函式內部

next

執行下一條語句,不會進入函式內部

continue

使程式繼續執行

quit

退出gdb工具

help [命令名]

輸出某個命令的用法

兩個命令的引數含義較為相近,故放在一張表中。

引數在list中的作用

在break中的作用

顯示行號為的前後若干行**

在行號為的**處設定斷點

<+offset>

顯示當前行+offset對應的行的前後若干行**

在當前行+offset對應的行的**處設定斷點

<-offset>

顯示當前行-offset對應的行的前後若干行**

在當前行-offset對應的行的**處設定斷點

顯示在filename檔案中行號為linenum的前後若干行**

在filename檔案中行號為linenum的**處設定斷點

顯示在函式**

在函式入口處設定斷點

顯示在filename檔案中的function函式**

在filename檔案中的function函式入口處設定斷點

* address

顯示address位址處的**

在address位址處設定斷點

-設定乙個條件斷點,滿足條件斷點才會生效

GDB常用指令

一 基本指令 程式設計設定 1.需要加 g,不能有 s,如g g main.cpp 常用指令 gdb gdb e 或者輸入gdb gdb file e 進入gdb,執行e檔案 gdb info breakpoints 可使用info檢視斷點相關的資訊 gdb break 7 以行號設定斷點 gdb ...

gdb 常用指令

除錯程式需要傳入引數 在執行前 set args 需要傳入的引數 檢視 list 從main函式開始檢視 show listsize 顯示當前 l 檢視 會顯示多少行 set listsize 20 設定 l 顯示為20行 list 行號 顯示該行號的上下文 list 函式名 檢視函式 list 檔...

gcc和gdb 的使用

筆記 gcc編譯器 熟練使用 1 gcc gnu compiler 是gnu推出的多平台編譯器,可將c c 源程式編譯連線程可執行檔案,支援以下字尾 1 c c語言源 2 h 程式所包含的標頭檔案 3 i 已經預處理過的c源 檔案 4 s 組合語言源 檔案 5 o 編譯後的目標檔案 2 gcc o ...