c – 确定定义类型的位置

我正在开发一个相当大的代码库,它有一点#ifdef魔法.我正在查看一个文件并尝试确定类型的定义位置.不幸的是,它包含许多文件,其中包含许多文件,其中包含许多文件等,其中一些文件定义了影响您可能使用的定义的宏.结构非常复杂,经过10分钟的grepping和跟随包含链后,我仍然不知道使用了哪个定义.我记得visual studio一个很好的功能,我可以右键单击该类型,它将显示类型的定义位置.有没有一个相当不错的linux工具读取make文件等?我确定有,但我仍然只是使用vim grep来开发我的开发环境.

最佳答案
对于复杂的定义和依赖项,此功能在Visual Studio中也不总是有效.

解决方案:请求编译器在预处理后转储代码,并要求它打印#line和#file指令.在结果文件搜索您的类型,然后查看最接近的#file指令以查看它来自何处.

(在GCC中你可以使用-E开关)

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...