gdb调试的使用

gdb

GDB(GNU Debugger)GCC的调试工具。

一、生成调试的可执行文件

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(gcc/g++)的 -g 参数可以做到这一点。如:

     gcc -g hello.c -o hello
     g++ -g hello.cpp -o hello

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。

二、启动gdb

    1. gdb 可执行程序
    1. gdbtui 可执行程序/gdb -tui 可执行程序

三、查看源代码

list命令来打印程序的源代码,默认打印10行。list简写为l

l 行号(函数名)
l filename:行号(函数名)

四、设置断点

break 设置断点,可以简写为b
4.1、设置当前文件断点:

b 行号(函数名)

4.2、设置指定文件断点

b filename:行号(函数名)

4.3、设置条件断点

b 文件名:行数 if 变量名 = 值

4.4、删除断点

delete 设置断点,可以简写为d

d 断点的编号
获取编号:info break 简写(i b)

五、查看设置的断点

info break 简写(i b)

六、开始 执行gdb调试

  • 执行一步操作:start
  • 执行多步,直接停在断点处:c ---- continue ----直接停在断点位置

七、单步调试

7.1、进入函数体内部:

s ---- step(单步)----可以进入函数体内部
从函数体中跳过:finish

7.2、不进入函数体内部:

n ---- next(单步) ----跳过此函数体内部
退出当前循环: until,可以简写为u

八、查看运行时的数据

-print 打印变量、字符串、表达式等的值,可简写为p

p 变量名 //打印十进制
p/x 变量名 //打印十六进制
p/t 变量名 //打印二进制

九、查看变量的类型

ptype 变量名

十、设置变量的值

set var 变量名=赋值

十一、追踪变量

  1. 设置追踪变量
    display 变量
  2. 取消追踪变量
    undisplay 编号
    获取编号:info display

十二、退出gdb调试

quit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值