免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4363 | 回复: 5
打印 上一主题 下一主题

gdb:如何自动的显示当前函数的某个变量的数值?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-05 11:56 |只看该作者 |倒序浏览
问题:
      一个程序有数十个函数:比方说有a,b,c....g,我现在用gdb对该程序进行调试。我希望的效果如下:
      当执行run的时候,程序开始执行,当执行到foo函数的时候就打印foo的变量var-foo,然后程序继续执行bar函数,当执行流进入bar的时候,就打印bar的变量var-bar。
      条件是:在foo和bar中并没有明显的类似printf这样的用来明显的打印出var-foo和var-bar的函数。当gdb在按下执行run之后,整个执行流是不中断的,也即是说我不要程序stop,然后执行print。还有就是当执行到foo的时候只打印var-foo,而不打印var-bar,对于bar同样如此。



谢谢达人!!

论坛徽章:
0
2 [报告]
发表于 2009-12-05 11:58 |只看该作者

回复 #1 wojiaohesen 的帖子

我现在碰到的问题就是可以通过定义hook-stop来打印函数的数值,但是问题在每次stop的时候它都会执行里面所有的语句,这也就是说我不能正对不同的函数进行stop,希望谁给点建议??
谢谢

论坛徽章:
0
3 [报告]
发表于 2009-12-05 13:30 |只看该作者

回复 #1 wojiaohesen 的帖子

:wink: 同理,我也想知道。。顶了。。

论坛徽章:
0
4 [报告]
发表于 2009-12-05 19:08 |只看该作者
终于感觉到gdb的能力相当的弱了。尤其是在多线程的环境下。考虑用用intel debugger for linux(idb),不知道能不能提供这样的功能

论坛徽章:
0
5 [报告]
发表于 2009-12-07 14:20 |只看该作者

rt

运行中,你的局部变量可能一值在变;
而你要边运行边查看变量,只能看到眼花;
所以stop以后,你用栈的回溯能查看所有栈帧的局部变量就够了;

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2009-12-07 22:20 |只看该作者
原帖由 wojiaohesen 于 2009-12-5 11:56 发表
问题:
      一个程序有数十个函数:比方说有a,b,c....g,我现在用gdb对该程序进行调试。我希望的效果如下:
      当执行run的时候,程序开始执行,当执行到foo函数的时候就打印foo的变量var-foo,然后程序继 ...

这个用 GDB 的 commands 命令就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP