今天get到一個在linux下gdb調試程序的技巧和大家分享一下!平時我們利用gcc進行編程,進行程序調試時,觀察程序的跳轉等不是這么直觀。都是入下的界面!
但是如果我們在編譯連接時上加了-g命令生成的可執行文件,用gdb -tui -q p2psrv(要debug的命令),就可以進入一個類似的可視化的調試界面。
之后相信一些基本的gdb操作大家都應該清楚。
backtrace:查看各級函數調用及參數
finish:連續運行到當前函數返回為止,然后停下來等待命令
frame(或f) 幀編號 :選擇棧幀
info(或i) locals :查看當前棧幀局部變量的值
list(或l):列出源代碼,接着上次的位置往下列,每次列10行
list 函數名: 列出某函數的源代碼
next(n):執行下一行語句
print(或p):打印表達式的值,通過表達式可以修改變量的值或者調用函數
quit(或q):退出gdb調試環境
set var:修改變量的值
start:開始執行程序,停在main函數第一句前面等待命令
step;執行下一句語句,如果有函數調用則進入函數中
大家可以趕快去試一下吧!
命令 | 描述 |
---|---|
backtrace(或bt) | 查看各級函數調用及參數 |
finish | 連續運行到當前函數返回為止,然后停下來等待命令 |
frame(或f) 幀編號 | 選擇棧幀 |
info(或i) locals | 查看當前棧幀局部變量的值 |
list(或l) | 列出源代碼,接着上次的位置往下列,每次列10行 |
list 行號 | 列出從第幾行開始的源代碼 |
list 函數名 | 列出某個函數的源代碼 |
next(或n) | 執行下一行語句 |
print(或p) | 打印表達式的值,通過表達式可以修改變量的值或者調用函數 |
quit(或q) | 退出gdb 調試環境 |
set var | 修改變量的值 |
start | 開始執行程序,停在main 函數第一行語句前面等待命令 |
step(或s) | 執行下一行語句,如果有函數調用則進入到函數中 |