GDB介绍

什么是GDB

​ gdb是由GUN软件系统社区提供的调试工具,同GCC配套组成了一套完整的开发环境,GDB是Linux和unix系统的标准开发环境。

四个功能

  1. 启动程序
  2. 在指定处停止程序
  3. 程序停下时,可以检查此时程序中所发生的事情
  4. 可以改变程序,修改bug

通常,在为调试而编译时,我们会()关掉编译器的优化选项(-o) ,并打开调试选项( -g )。-g的作用是在可执行文件中加入源代码信息,比如可执行文件中第几条机器指令对应源代码的第几行,但并不是将源代码完全嵌入到可执行文件当中。

如图展示了通过-g命令确实添加了一些信息,内容上从8.3k增加到了11k。

-wall在尽量不影响程序行为的情况下选项打开所有warning,也可以发现许多问题,避免一些不必要的 BUG。

GDB命令

启动命令:

gdb 可执行文件

退出

qiut/q

给程序设置参数:

set args 10 20

获取参数

show args

在这里插入图片描述

gdb使用帮助

help

查看当前文件代码:

list/l 默认位置/行号/函数名

在这里插入图片描述

查看非当前文件代码

list/l 文件名:行号/函数名

设置断点

break 行号/函数名/文件名:行号/文件名:函数名

查看断点

i/info b/break

删除断点

d/del/delete 断点编号

设置断点无效

dis/disable 断点编号

设置断点有效

ena/enable 断点编号

设置条件断点

b/break 10 if i==5

在这里插入图片描述

调试命令

运行gdb命令

start (程序停在第一行)
run (遇到断点才停)

继续运行到下一个断点

c/continue

变量操作

打印变量值

print/p 变量名

打印变量类型

ptype 变量名

向下单步调试

next
s/step
finish(跳出函数体)

自动变量操作

display num (自动打印指定变量的值)
i/info display
undisplay 编号

跳出循环

until
s/step

finish(跳出函数体)

自动变量操作

display num (自动打印指定变量的值)
i/info display
undisplay 编号

跳出循环

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值