gdb学习小结

本文详细介绍GDB调试器的使用方法,包括启动调试、运行程序、设置及管理断点、单步执行、打印变量等基本操作,并介绍如何查看堆栈、反汇编函数以及设置命令行参数等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用gdb调试程序,在编译程序是加-g选项

1、gdb a.out 启动gdb调试

2、r 或 run,运行程序

3、b 或 break,设置断点

4、enable 断点号,disable 断点号, 使能或不使能断点 

5、delete 断点号, 删除断点

6、c 或 continue,断点将程序停止后,使用此命令继续执行程序

7、b 行号 if i==5 ,即格式为:break....if<condiftion>,设置条件断点

8、p 或 print 打印变量

9、s step,单步运行,进入函数

10、finish 退出函数

11、n next 单步调试,不进入函数

12、p static_arr_name 打印静态数组

13、p  *dynamic_arr_name@elements_count 打印动态数组

14、bt 或 backtrace 察看堆栈

15、frame number 察看堆栈第number号帧。堆栈的每一层叫一帧

16、down up 上下察看堆栈帧

17、disassemble 函数名 ,反汇编指定函数

18、display /i $pc ,设置自动显示变量,显示当前指令的汇编代码

19、info break 察看断点

20、set args 10 20 30 40,设置命令行参数

21、show args 显示命令行参数

22、set env path[=value]设置环境变量

23、show paths 显示环境变量

24、shell + 命令,在gdb中执行shell命令

25、run > outfile,在gdb中重定向输出

26、tty /dev/ttyb, gdb中重定向输入输出文件

27、info program 察看当前调试程序的状态

28、condition 断点号 停止条件,更改条件断点的条件

29、commands 断点号

命令1

命令2

。。。。

命令n

end       //当程序在指定断点处停下时执行相应命令

30、l list ,察看源代码

31、print输出格式

例:p /t i  ,以二进制显示变量i

32jump 行号或函数名 跳转执行

33p {type}0x7efa000000  按指定类型type,打印指定地址0x7efa000000的内容

34、p obj@num 打印指定长度num个对象obj

35、x(examine)/12w 0x7efa000000 查看指定内存出开始的12个字的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值