GDB符号调试器(二)

  • 使用观察窗口

(gdb) watch 表达式   设置好查看的表达式,则可以使程序在表达式成立时终止运行

 

eg: (gdb) watch counter>15

  • 查看栈信息

(gdb) breaktrace  

(gdb) bt

 

该命令打印当前停住地方函数调用栈的所有信息.

 

(gdb) breaktrace    <n>

(gdb) bt  <n>

 

n是一个正整数,表示可以打印栈顶上的n层信息

 

 

 

(gdb) breaktrace    <-n>

(gdb) bt  <-n>

 

-n表示一个负整数,打印栈底n层信息

 

(gdb) frame    <n>

(gdb) f  <n>

 

 

当需要查看某一层栈的具体信息的时候,需要切换栈,还可以使用 (gdb) up  /  down  <n>来上下移动栈

 

(gdb) info  f   则可以显示出更为详尽的当前栈层的信息

 

(gdb) info  args  显示当前函数的参数名和值

 

(gdb) info  locals  显示局部变量及值

(gdb) info  catch  显示当前函数中的异常信息

  • 查看源程序

gdb可以打印出来源代码,但是务必在编译是加上-g选项  ,然后我们使用 (gdb) list 命令即可.

(gdb) list <linenum>  行号

(gdb) list <function>  函数名

(gdb) list <+offset>   当前行号的正偏移

(gdb) list <-offset>    当前行号的负偏移

(gdb) list <filename:linenum>  文件的哪一行

(gdb) list <filename:function>  文件的函数名

(gdb) list <*address>   程序运行时的语句在内存中的地址.

gdb还可以搜索

(gdb) forward-search <regexp>

(gdb) search <regexp>                            向前搜索

(gdb) reverse-search <regexp>               全部搜索

指定源文件路径

(gdb) directory <dirname ... >                  多个路径可以使用":"隔开

(gdb) info line    显示源代码在内存中的地址.

 

 

  

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值