命令
作用-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 ...