Linux调试器---gdb的使用

目录

1.debug VS relese

2.gcc 的默认行为

3.gdb 的基础操作 

3.1启动和退出

3.2 显示代码 l+行号

3.3开始跑代码 r 和打断点  b+行号

3.4 b 函数名  b file:行号

3.5 info b  查看打的断点

3.6 d 断点编号  删除断点

3.7 disable/enable 断点编号   使能(开启或关闭断点)断点

3.8 n  逐过程 ----- F10  s  逐语句 ----- F11

3.9 display 变量名/地址       常显示变量  undisplay 变量名/地址    取消常显示

3.10   c   从一个断点跳到另一个断点

3.11 finish 将一个函数运行结束,就停下来 

3.12 until 行号 小范围跳转到指定行 (肯定是程序自动走到指定行)

3.13 set var name = val  在不改变代码的情况下,多分支下修改一下变量的值

3.14 bt 查看调用堆栈 


1.debug VS relese

 debug模式下形成的可执行程序会给我们添加了调试信息,但是用户并不需要,他们需要更快的下载速度。

relese模式下形成的可执行程序,会去掉调试信息,这样会让release模式下的可执行文件更小。

2.gcc 的默认行为

gcc默认链接时,链接的是动态库

gcc默认编译出来的可执行程序是release模式的,这个模式下的可执行程序是无法调试的,

在使用gcc的时候,添加 -g 选项更改编译出来的可执行文件为denug模式 


3.gdb 的基础操作 

3.1启动和退出

3.2 显示代码 l+行号

因为gdb会自动记录上一行的代码,所以输入l 1 后,继续按回车键就可以往下走了。 


3.3开始跑代码 r 和打断点  b+行号


3.4 b 函数名  b file:行号


3.5 info b  查看打的断点


3.6 d 断点编号  删除断点

3.7 disable/enable 断点编号   使能(开启或关闭断点)断点

这里的 n、y就代表着断点是否被启用 


3.8 n  逐过程 ----- F10  s  逐语句 ----- F11

 


 

3.9 display 变量名/地址       常显示变量  undisplay 变量名/地址    取消常显示

 


3.10   c   从一个断点跳到另一个断点

 


3.11 finish 将一个函数运行结束,就停下来 


3.12 until 行号 小范围跳转到指定行 (肯定是程序自动走到指定行)


3.13 set var name = val  在不改变代码的情况下,多分支下修改一下变量的值

 

这个指令有几点注意的:1.必须代码运行起来。2.要改变的变量必须是被定义了 (就是在修改这个变量的时候,程序必须运行过这个变量定义的那条指令了)。


3.14 bt 查看调用堆栈 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值