GDB调试

1、gdb调试编译准备

编译时加上一定加上 -g选项
eg.
gcc main.c -o main -g

2、开启gdb调试

开启gdb

gdb main
[图 ]

3、查看程序 l

命令 : l // 对应list的简写

显示某函数上下文内容: l print // 显示函数print上下文内容

4、断点 . b

设置断点:
b 10 // 在第10行设置一个断点 ,为是break 10的简写形式

b print // 在print 函数处设置断点

// 查看断点
info break // 简写 i break
在这里插入图片描述
// 禁止某断点
disable 1 // 禁止序列号为1的断点
在这里插入图片描述
// 重新使能某断点
enable 1 // 重新使能断点1
在这里插入图片描述
// 删除断点
d break 1 // 删除断点1
在这里插入图片描述
// 一次删除全部断点
d // 直接输入一个d命令删除全部断点
在这里插入图片描述

6、运行跑程序 r

命令: r ,会跑到下一个断点处
在这里插入图片描述

7、查看调用栈 bt

命令:bt // breaktrace 的简写
在这里插入图片描述

8、查看所有全局变量值 info local

命令:info local
在这里插入图片描述

9、单步运行 n

命令: n // 单步运行
在这里插入图片描述

10、查看某个变量的值 : p varname

命令: p 变量名
eg. p start // 查看start变量的值
p &start // 查看变量start地址值
在这里插入图片描述

11、每次执行时都显示某个变量的值 : display varname

命令: display 变量名
eg. display start // 每次都显示start变量的值
display &start // 每次都显示start变量地址的值
在这里插入图片描述

12、修改变量的值 p varname = var

命令1: p 变量名 = 要设置的值
eg. p start = 4
命令2: set val 变量名 = 要设置的值
eg. set val start = 4
在这里插入图片描述

13、跳入函数内部 s

命令: s
在这里插入图片描述
上图中当前程序执行在 main.c函数的第33行,该行对应函数print,按入s表示进入print函数内部

14、觉得单步麻烦,直接运行完这个函数 finish

命令: finish
在这里插入图片描述

15、直接将程序运行到某一行: until 20

命令:until 20 // 直接运行到第20行
在这里插入图片描述

16、查看当前代码运行到哪一行 f

17、退出

方式一 命令: q
方式二 ctrl + d

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值