1.思维导图:
2.文本
gdb 简单入门
使用过程
1.生成程序文件
gcc -g main.cpp -o helloworld
2.进入gdb调试界面
gdb ./helloworld
3.断点设置
添加断点:命令:b(break)
b main(函数名)
b main.cpp:12(文件名
+行号)
b 12(行号)
b Object::Create(类名
+成员函数)
删除断点
del break 2(2表示第二个)
显示断点
info break
4.执行
重头开始执行
r(run)
执行断点后的下一步:n (next)
n 执行下一步
n 2 执行下面2步
程序继续运行直到下一断点或结束
c(continue)
5.显示变量
p(print)
p a(a为变量)
p a+b(显示a+b的值)
p (Object*)p1->a
*p ("%d",12);
6. 监视变量内存
x/16xb buf
(buf为地址变量)
16:显示16个以b(byte)
为单位的内存
x d u f s :
x 16进制
d 10进制
u unsigned int
f 小数
s 字符串
b h w g :1 2 4 8字节
b byte
h half-word
w word
g gaint
disp(display)监视变量
disp a
(a是变量名)
7.退出程序界面
q(quit)
段错误
查看发生错误时的栈信息
bt(backtrace)
应用
使用场景
-单元测试
-段错误定位
不适用场景
-大型程序
-尤其是多线程程序
-单步调试时问题无法复现,
只能在正常运行时复现
(使用打印调试)
其他
查看是否带有调试信息:
法1:objdump –h helloworld.exe
法2:(直接使用)
gdb helloworld.exe
查看源码
命令:l(list)
l 不加参数
//显示源码 若一次未能全部显示
,则按Enter键
查看帮助:
help x(x为命令)
help info(info为命令)