gdb调试常用命令
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 https://blog.csdn.net/tzshlyt/article/details/53668885
gcc -g main.c //在目標(biāo)文件加入源代碼的信息 gdb a.out (gdb) start //開(kāi)始調(diào)試 (gdb) n //一條一條執(zhí)行 (gdb) step/s //執(zhí)行下一條,如果函數(shù)進(jìn)入函數(shù) (gdb) backtrace/bt //查看函數(shù)調(diào)用棧幀 (gdb) info/i locals //查看當(dāng)前棧幀局部變量 (gdb) frame/f //選擇棧幀,再查看局部變量 (gdb) print/p //打印變量的值 (gdb) finish //運(yùn)行到當(dāng)前函數(shù)返回 (gdb) set var sum=0 //修改變量值 (gdb) list/l 行號(hào)或函數(shù)名 //列出源碼 (gdb) display/undisplay sum //每次停下顯示變量的值/取消跟蹤 (gdb) break/b 行號(hào)或函數(shù)名 //設(shè)置斷點(diǎn) (gdb) continue/c //連續(xù)運(yùn)行 (gdb) info/i breakpoints //查看已經(jīng)設(shè)置的斷點(diǎn) (gdb) delete breakpoints 2 //刪除某個(gè)斷點(diǎn) (gdb) disable/enable breakpoints 3 //禁用/啟用某個(gè)斷點(diǎn) (gdb) break 9 if sum != 0 //滿足條件才激活斷點(diǎn) (gdb) run/r //重新從程序開(kāi)頭連續(xù)執(zhí)行 (gdb) watch input[4] //設(shè)置觀察點(diǎn) (gdb) info/i watchpoints //查看設(shè)置的觀察點(diǎn) (gdb) x/7b input //打印存儲(chǔ)器內(nèi)容,b--每個(gè)字節(jié)一組,7--7組 (gdb) disassemble //反匯編當(dāng)前函數(shù)或指定函數(shù) (gdb) si // 一條指令一條指令調(diào)試 而 s 是一行一行代碼 (gdb) info registers // 顯示所有寄存器的當(dāng)前值 (gdb) x/20 $esp //查看內(nèi)存中開(kāi)始的20個(gè)數(shù)總結(jié)
- 上一篇: 深入理解C语言的函数调用过程
- 下一篇: 编写自文档化代码