Linux下gdb编译调试程序


前言

本文记录调试工具gdb的一些基础使用方式。gdb是一个程序调试工具,注意,如果是程序语法报错,则在gcc进行编译时自然有错误信息进行输出。gdb需要先将程序文件编译为可执行文件成功之后才能使用。

一、调试前的准备

编译带有调试信息的可执行程序

gcc -g 源程序文件.c 程序文件1.c -o 可执行程序文件

使用gdb调试器打开,进入调试器模式

gdb 可执行文件

注意进入调试模式,命令可以是缩写,也可以不缩写。
不缩写可读性比较高,但是在自己很熟悉调试模式的情况下,使用缩写比较快
查看源程序代码
gdb

l(list)
l(list) 1#从第1行代码开始显示
l(list) 行号#显示第几行的代码
l(list) 函数名#显示某一个函数的代码,但是系统函数的代码不显示
#顺便切换文件,打断点时一定要注意在哪一个文件下

二、gdb中断点的使用

创建断点

b(break) 函数名
b(break) 行号
b(break) 文件名:行号
b(break) 行号if条件

b(break) add#表示在函数add出创建断点
b(break) 13 if x>3#如果x>3则在第13行下一个断点
b(break) add.cxx:3#表示在add.cxx的第三行下一个断点

查看断点

i(info) b(break)

删除断点

d(delete) 断点编号

d(delete) 3#表示删除3号断点

三、gdb中运行调试程序

直接运行程序

r(run)#运行调试程序
c(continue)#继续运行程序
q(quit)#退出

单步调试

n(next)#步过
s(step)#步进
f(finish)#步出

更加可视化的调试方式,可以边跟踪,边看全部代码

wi(winheight)

wi这里也会有歧义,推荐使用全称,不使用缩写

四、gdb中打印值和监控值

打印值

p(print) 变量名

监控值,w在某些时候有歧义,此时可以使用全写watch

w(watch) 变量名

总结

本文仅讲解了gdb的基础使用方式,都是一些常用操作的命令,如有纰漏,还望指教!

参考

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值