gdb调试宏定义的方法
2024-01-03 19:00:44
问题引入
逛知乎时刷到了这篇文章1,讲述了如何在GDB中调试宏,笔者在复现的时候未成功,一直显示上下文中找不到对应的符号,用文中的-g3方法仍然无法打印出该符号,使用文中的方法利用readelf查看生成的调试信息,可以看到对应的宏信息,但仍然无法打印该标志。
查阅资料
经过查询找到了这篇文章2,给出了新的调试标志-gdwarf-2。
文中使用的是C++,这里笔者使用gcc,除该标志外其余均与文章1相同,复现了该实验,证明了只有添加上述标志才能正确打印出宏信息。
示例程序
文章1中只有程序截图,并没有代码,此处附上代码,供有兴趣的同学尝试。
#define MONDAY 1
#define MAX(a, b) ((a > b) ? (a) : (b))
int main() {
return 0;
}
文章来源:https://blog.csdn.net/weixin_45207619/article/details/135369427
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!