忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 6742 | 回复: 7

如何在程序中像gdb那样打印一个结构体的内容 [复制链接]

论坛徽章:
0
发表于 2012-06-20 15:33 |显示全部楼层
例如,struct foo *p。在gdb中,直接p *p就可以打印结构的所有成员的值。

在自己的程序中,可以手动写程序来达到同样的效果,但是有大量复杂结构的情况下,也是不小的工作量。 有没有现成的库,可以根据调试信息,使用一个简单的接口来达到这样的效果呢? 类似: print_struct(&p)。 p本身是个结构类型指针,根据调试信息和p的地址应该可以得到类型信息。

论坛徽章:
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
发表于 2012-06-20 16:44 |显示全部楼层
回复 1# honkiko


    那要是调试信息被 strip 之类的工具搞掉了呢?

论坛徽章:
0
发表于 2012-06-20 17:46 |显示全部楼层
回复 2# MMMIX
主要调试版用

   

论坛徽章:
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
发表于 2012-06-21 16:45 |显示全部楼层
回复 3# honkiko


    那你看看 BFD 吧,GDB 用的就是这个。

论坛徽章:
0
发表于 2012-06-27 08:34 |显示全部楼层
我之前做过一个cjson的东西
基于某大牛JSON格式转化的库,实现结构体自动转化为字符串,也可以转回来。

论坛徽章:
0
发表于 2017-05-23 12:08 |显示全部楼层
请问楼主实现了吗,如果实现了,可以共享下吗?十分感谢

论坛徽章:
0
发表于 2018-05-02 12:49 来自手机 |显示全部楼层
gary_lfx 发表于 2012-06-27 08:34
我之前做过一个cjson的东西
基于某大牛JSON格式转化的库,实现结构体自动转化为字符串,也可以转回来。

用在c语言里吗?

论坛徽章:
0
发表于 2018-05-03 20:22 来自手机 |显示全部楼层
我以前就想过这样,始终没实现,有好的思路分享一下啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP