gdb调试简单入门

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为命令)

3.参考资料

http://study.163.com/course/courseMain.htm?courseId=1312007

猜你喜欢

转载自blog.csdn.net/wxf2012301351/article/details/74505915