GDB调试指令
gdb a.out 啟動(dòng)GDB, Makefile里記得加-g調(diào)試參數(shù)
set args 可指定運(yùn)行時(shí)參數(shù)。(如:set args 10 20 30 40 )
show args 命令可以查看設(shè)置好的運(yùn)行參數(shù)。
l --命令相當(dāng)于list,從第一行開始例出原碼。
直接回車表示,重復(fù)上一次命令
break 16 ---- 設(shè)置斷點(diǎn)在源程序第16行處。或b 16
break func ---- 設(shè)置斷點(diǎn)在函數(shù)func()入口處。
info break ---- 查看斷點(diǎn)
r ----- 運(yùn)行程序,run命令簡(jiǎn)寫
n ---- 單條語(yǔ)句執(zhí)行,next命令簡(jiǎn)寫。
c ---- 繼續(xù)運(yùn)行程序,continue命令簡(jiǎn)寫
p i ---- 打印變量i的值,print命令簡(jiǎn)寫。
bt --- 查看函數(shù)堆棧。
delete 斷點(diǎn)號(hào) 刪除斷點(diǎn)
clear 行號(hào) 刪除某行斷點(diǎn)
s -- 進(jìn)入
finish --- 退出函數(shù)。
q --退出gdb。
(gdb) info threads ?查看多線程
(gdb) thread 2 ?查看某個(gè)線程
(gdb) break frik.c:13 thread 28 if bartab > lim 對(duì)某個(gè)線程條件斷點(diǎn)
gdb調(diào)試core的流程:
gdb -c ss_5635.core
file ./test
r #有些環(huán)境需要執(zhí)行
b 88
跳到core處 bt 查看堆棧
上面的方法不好用的時(shí)候可以用這個(gè):
gdb ss -c ss_5635.core
bt 4
bt 12
f 2
print *this
另外有個(gè)GDB命令的擴(kuò)展庫(kù)。
apt-get install lrzsz #一個(gè)直接拉拽上傳的工具
mv gdbinit_stl_views-1.03.txt .gdbinit --把擴(kuò)展庫(kù)放根目錄下
轉(zhuǎn)載于:https://www.cnblogs.com/xiao0913/p/5266806.html
總結(jié)
- 上一篇: 访问修饰符,封装,继承
- 下一篇: [deviceone开发]-心形点赞动画