寫下linux下用emacs調用dgb調試的方法
emacs中使用gdb
說明C等價于ctrl????????? M等價于alt
1,編寫 .c函數 test.c
2,gcc一把??? 看看對不對?? 帶上-g
gcc?? -g??? -o????? test .debug??? test.c
如果要用gdb調試器,必須使用g選項。
3,#emacs??? //打開emacs(也可以先打開源碼進行對照)
???? (打開源碼 #emacs test.c 然后水平切開窗口 C--x 3)
????? M + x?? gdb 回車???????????????????? //打開gdb
????? 在gdb中輸入file?? test.debug //打開文件進行調試
4,list?????????? //列出源碼?? l 5 則光標顯示在第五行
5,b line???? //在line行設個斷點 delete +點號 可以刪除斷點 info b 可以查看斷點信息
6,run??????? //執行 到斷點處會停下來?? p+變量 可以查看變量
7?? step????? //單步????? continue //繼續
8?? quit????? //退出
相關gdb指令
backtrace(或bt)查看各級函數調用及參數
finish 執行到當前函數返回,然后停下來等待命令
frame(或f) 幀編號選擇棧幀 info(或i)
locals 查看當前棧幀局部變量的值
list(或l)列出源代碼,接著上次的位置往下列,每次列10行
list 行號列出從第幾行開始的源代碼 list 函數名列出某個函數的源代碼
next(或n)執行下一行語句
print(或p)打印表達式的值,通過表達式可以修改變量的值或者調用函數
set var 修改變量的值
start 開始執行程序,停在main函數第一行語句前面等待命令
run(或r)從頭開始連續而非單步執行程序
step(或s)執行下一行語句,如果有函數調用則進入到函數
continue(或c)從當前位置開始連續執行程序直到遇到斷點
break(或b) 行號在某一行設置斷點
break 函數名在某個函數開頭設置斷點
break...if... 設置條件斷點
delete breakpoints 刪除斷點
display 變量名跟蹤查看一個變量,每次停下來都顯示它的值
disable breakpoints 禁用斷點
enable breakpoints 啟用斷點 info(或i)
breakpoints 查看當前設置了哪些斷點
undisplay 取消對先前設置的那些變量的跟蹤
jump
在斷點之間跳轉