GDB进阶命令

GDB详细命令列表可参考:http://www.zeuux.org/science/learning-gdb.cn.html

 

 

1,

where : 输出堆栈中跟踪的函数调用记录.

bt : backtrace,同上.

 

backtrace full

bt full

bt full n

bt full -n

    也打印本地变量。n是要打印的帧的数量,如上所述。

 

 

2,

frame  <number>: 检查某一特定帖(一帖为一个函数调用).


    frame  n
        n是一个从0开始的整数,是栈中的层编号。比如:frame 0,表示栈顶,frame 1,表示栈的第二层。
    
    up 
        表示向栈的上面移动n层,可以不打n,表示向上移动一层。 
        
    down  
        表示向栈的下面移动n层,可以不打n,表示向下移动一层。 

 

info frame  打印出更为详细的当前栈层的信息,只不过,大多数都是运行时的内内地址

 

 

     info args
        打印出当前函数的参数名及其值。
     
     info locals
        打印出当前函数中所有局部变量及其值。
        
     info catch
        打印出当前的函数中的异常处理信息。

3,

finish : 当用step命令进入函数内部后,用finish命令来执行程序直到从当前函数返回.

4,

用枚举代替宏定义: 便于调试时检查变量值的含义.

5,

watch <…>: 设置观察点.

6,

gdb不能单步调试if,while语句的多个条件函数.所以必要时要重写代码.

也可在被调函数内设置断点来检查其值,但只能查看而不能记录其值.

7,

调试工具: valgrind等.

8,

<<debugging>> , David J.Agans.

 

 

info break     查看断点

print x=1 修改变量x的值

set args 。。。  指定参数: 

show args  


display 设置自动显示的变量


delete 删除断点


frame或f 查看当前栈层的信息  

info frame或info f   这个命令会打印出更为详细的当前栈层的信息,只不过,大多数都是运行时的内存地址。比如函数的地址,调用函数的地址,被调用函数的地址,目前的函数是由什么样的程序语言写成的、函数参数地址及值,局部变量的地址等等




path 《dir》: 设定程序运行路径  

show 《dir》:查看路径  

set environment varname[=value]:设置环境变量。如set env USER=hchen  

show environment[varname]: 查看环境变量  

info terminal: 显示程序用到的终端的模式  

run>outfile: 重定向输出  

tty /dev/ttyb:指定输入输出的终端设备 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值