Linux系统下的基本gdb调试

转:https://blog.csdn.net/qq_39755395/article/details/78305934

一、调试的工具:gdb

二、调试的对象:可执行程序,而不是.c文件,调试的对象一定是一个进程,调试时,程序必须带有调试信息,所以在编译链接的过程中,必须加上参数:“-g”。

三、调试的命令:

l:显示代码

b+行号:加断点

info break:显示断点信息

r:启动程序

n:单步执行

c:继续执行

s:进入函数

finish:退出/跳出函数

display + 变量名 持续打印 

p+变量名:打印变量的值

delete+断点号:删除断点信息

bt:函数调用栈关系(在被调用函数里能看见自己和调用函数,在调用函数里只能看见自己)

四、实例:

先编写一个简单的C语言实例

这里写图片描述

像下面的“gcc -o main main.c”,是无法生成有调试信息的main的,因此无法进行调试。

这里写图片描述

加上参数“-g”,才可以进行调试。 

gcc -o main main.c -g

这里写图片描述

2、正式开始调试:

gdb l   打开全部代码

下断点,查看断点信息

运行程序  r

下一步,查看i arr[i] 的值  p+变量名

持续显示变量i  arr[i]的值

继续执行:

删除断点:

注意删除断点的信息是断点的编号,我先把开始设的断点1号、2号删除了,再新增了两个断点——3号和4号,所以这时候再删除1号断点是不能成功的。

对于后续的调试操作——进入函数、跳出函数和查看函数调用栈关系,我增加了add.c和max.c,再进行新的调试,所有的文件如下:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值