Linux——gdb的使用

平时使用的编译器自带调试功能,而在Linux下我们使用gdb来进行调试。GDB 全称“GNU symbolic debugger是Linux常用的程序调试器。

gdb的使用前提

调试的前提是这个程序含有调试信息,否则是无法调试的。

gcc -o test test.c   这样生成的可执行程序不带调试信息,无法调试。

gcc -o test-debug test.c -g    想要生成的可执行程序可以调试只需要加上  -g  选项即刻。

同样的代码生成的  test  和  test-debug  大小却不一样,因为  test-debug  带有调试信息。 

 

通过指令可以看到这些debug的调试信息。 

 调试方法

进入调试

使用        gdb  可执行程序名        就可以开始调试该程序,进入后可以使用   l   来查看源代码,l 0  从第0行开始,但一次只打印10行,因为其会记录上一条指令,多按几次回车即刻查看完整的代码。

 

 常用调试指令

指令用法作用
quit  简写  q直接输入q,然后回车即可退出gdb
list  简写  l

(1)l  文件名:行号 (2)l  文件名:函数名

(3)l  行号                (4)l  函数名

查看任意位置的源代码
b

(1)b  文件名:行号 (2)b  文件名:函数名

(3)b  行号                (4)b  函数名

在任意位置打断点
info  简写  i i b查看断点
dd  断点编号(创建断点时,断点会从1开始作为编号)删除断点
disable/enabledisable/enable  断点编号关闭断点/开启断点
next  简写  nn逐过程执行(F10)
step  简写  ss逐语句执行(F11)
print  简写  pp  变量名(p a  或  p &a)

查看变量值(监视)

displaydiaplay a  或  diaplay &a常显示变量值(监视窗口)
undisplayundiaplay  常显示变量编号取消常显示
continue c运行至下一个断点
finish  简写  ff运行完当前函数
until  简写  uu  指定行运行到指定行
run  简写 rr

开始执行

断点注意事项:哪怕前面的断点被删除,也不影响后面的编号。如图编号为1的断点被删除后,只剩下编号为2的断点,但再创建断点其编号还是3。

 display的编号同理。

关闭断点后Enb属性显示n,此时断点不生效。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值