gdb的作用
- 隨心所欲的控制程序
- 在重點(diǎn)關(guān)照的地方設(shè)置斷點(diǎn)
- 可以查看程序停止時(shí)的執(zhí)行環(huán)境
- 動(dòng)態(tài)改變執(zhí)行環(huán)境
編譯時(shí)要加 -g
gdb相關(guān)指令
啟動(dòng)gdb:gdb ./app --這樣代表要調(diào)試當(dāng)前路徑下的app程序
運(yùn)行程序
- 單步調(diào)試啟動(dòng):start
- 直接運(yùn)行啟動(dòng):r(un)
- 帶參數(shù)運(yùn)行:r(un) argv[1] argv[2] ...
常用指令
斷點(diǎn)
- 設(shè)置斷點(diǎn)
- b line
- b(reak) func
- b(reak) file:line
- b(reak) file:func
- 刪除斷點(diǎn)
- 查看斷點(diǎn)信息:i(nfo) b
- 刪除斷點(diǎn):del 編號(hào)
變量
- 打印變量:p(rint) x
- 跟蹤變量:display x
- 取消跟蹤變量
- 查看編號(hào):info display
- 取消:undisplay 編號(hào)
調(diào)試過(guò)程
1.顯示代碼:l(ist)
- 顯示具體行:list line
- 顯示函數(shù):list func
- 顯示文件:list file:line
- 跳到下一斷點(diǎn):continue
gdb跟蹤core
- 設(shè)置生成core:ulimit -c unlimited
- 取消生成core:ulimit-c 0
- 設(shè)置core文件格式:/proc/sys/kernel/core_pattern
- 文件不能vi,可以用后面的套路 echo "/corefile/core-%e-%p-%t" > core_pattern