GDB的一些命令使用

GDB的一些命令使用

本文內容來自:linuxc編程一站式學習
在編譯文件是加上 -g 編譯選項即可調試。gdb調試和源文件有關,不止是和編譯生成的文件有關。

wytx@ubuntu:~$ gcc -g -o hello hello.c
wytx@ubuntu:~$ gdb ./hello 

這就啓動了gdb,下面是調試時需要用到的常用命令

單步、函數跟蹤等基本命令

命令 描述
backtrace(或bt) 查看各級函數調用及參數
finish 執行到當前函數返回,然後停下來等待命令
frame(或f) 幀編號 選擇棧幀
info(或i) locals 查看當前棧幀局部變量的值
list(或l) 列出源代碼,接着上次的位置往下列,每次列10行
list 行號 列出從第幾行開始的源代碼
list 函數名 列出某個函數的源代碼
next(或n) 執行下一行語句
print(或p) 打印表達式的值,通過表達式可以修改變量的值或者調用函數
set var 修改變量的值
start 開始執行程序,停在main函數第一行語句前面等待命令
step(或s) 執行下一行語句,如果有函數調用則進入到函數中
直接回車 執行上一條命令

斷點相關的命令

命令 描述
break(或b) 行號 在某一行設置斷點
break 函數名 在某個函數開頭設置斷點
break…if… 設置條件斷點
continue(或c) 從當前位置開始連續而非單步執行程序
delete breakpoints 刪除斷點
display 變量名 跟蹤查看一個變量,每次停下來都顯示它的值
disable breakpoints 禁用斷點
enable breakpoints 啓用斷點
info(或i) breakpoints 查看當前設置了哪些斷點
run(或r) 從頭開始連續而非單步執行程序
undisplay 取消對先前設置的那些變量的跟蹤

break 10 if sum != 0 //在第10行設置斷點,當sum不等於0是纔有效

觀察點相關命令

命令 描述
watch 變量名 設置觀察點(例如 watch temp)
info(或i)watchpoints 查看當前設置了哪些觀察點
delete watchpoints 也是可以刪除觀察點的
x 例如:x/7b 從某個位置開始打印存儲器的一段內容,全部當成字節來看,而不區分哪些字節屬於哪些變量;x命令打印存儲器中的內容。 7b是打印格式, b表示每個字節一組, 7表示打印7組
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章