編譯程式時需要加上-g,之後才能用gdb進行除錯:gcc -g main.c -o main
gdb中命令:
(gdb)help:檢視命令幫助,具體命令查詢在gdb中輸入help + 命令,簡寫h
(gdb)start:單步執行,執行程式,停在第一執行語句
(gdb)list:檢視原**(list-n,從第n行開始檢視**。list+ 函式名:檢視具體函式),簡寫l
(gdb)set:設定變數的值
(gdb)next:單步除錯(逐過程,函式直接執行),簡寫n
(gdb)step:單步除錯(逐語句:跳入自定義函式內部執行),簡寫s
(gdb)backtrace:檢視函式的呼叫的棧幀和層級關係,簡寫bt
(gdb)frame:切換函式的棧幀,簡寫f
(gdb)info:檢視函式內部區域性變數的數值,簡寫i
(gdb)finish:結束當前函式,返回到函式呼叫點
(gdb)continue:繼續執行,簡寫c
(gdb)quit:退出gdb,簡寫q
(gdb)break+num:在第num行設定斷點,簡寫b
(gdb)info breakpoints:檢視當前設定的所有斷點
(gdb)delete breakpoints num:刪除第num個斷點,簡寫d
(gdb)display:追蹤檢視具體變數值
(gdb)undisplay:取消追蹤觀察變數
(gdb)watch:被設定觀察點的變數發生修改時,列印顯示
(gdb)i watch:顯示觀察點
(gdb)enable breakpoints:啟用斷點
(gdb)disable breakpoints:禁用斷點
(gdb)x:檢視記憶體x/20xw 顯示20個單元,16進製制,4位元組每單元
(gdb)run ar**[1] ar**[2]:除錯時命令列傳參
(gdb)set follow-fork-mode child#makefile專案管理:選擇跟蹤父子程序(fork())
core檔案:先用$ ulimit -c 1024 開啟core,當程式出錯會自動生成core檔案。除錯時 gdb a.out core
ctrl+c:退出輸入
ctrl+d
quit
Linux下除錯工具gdb的常用命令
前提 廢話不多講,無法跟蹤進入除錯,講得再多也是廢話。如何進入除錯?1.編譯加上 g 選項 2.執行 gdb a.out 注意 a.out一定要存在,或者是指定路徑,這樣gdb才能匯入並進行詳細分析 3.檢視原始檔並設定斷點 設定斷點可以設定函式斷點,比如 b myfuncname 4.執行,run...
gdb除錯常用命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...
gdb除錯常用命令
gdb list 1 從第一行開始列出原始碼 一次列出10行,如果要從11行繼續列出直接輸入list或l 命令簡寫 gdb l 搜尋 func name所在位置。gdb start 開始執行程式 gdb next 簡寫n 單條執行指令 直接回車重複執行上一條命令 n gdb step 簡寫s 執行下...