今天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) | 執行下一行語句,如果有函數調用則進入到函數中 |
