linux中gdb的視覺化除錯
阿新 • • 發佈:2019-01-23
今天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) | 執行下一行語句,如果有函式呼叫則進入到函式中 |