Debugging 是否有一些工具可以使宏代码像普通源代码一样可调试

Debugging 是否有一些工具可以使宏代码像普通源代码一样可调试,debugging,gcc,gdb,Debugging,Gcc,Gdb,正如我们所知,在调试期间,当启用特殊gcc选项时,gdb可以扩展宏。 但与调试原始源代码相比,它还不够方便 如果有一个工具可以就地展开宏并替换原始源代码供gcc编译,那就太酷了 如果没有这样的工具,我将创建一个,这里有一些粗略的想法供您评论 使用“gcc-E”编译带有宏的源代码,并将结果输出到一些临时文件,在预处理文件和原始源文件之间进行一些智能差异/比较,以提取扩展的源代码,并构建最终的源代码,其宏已被扩展一个想法是使用gcc-E,然后编辑生成的.i文件并删除受影响区域周围的#行指令。然后编译

正如我们所知,在调试期间,当启用特殊gcc选项时,gdb可以扩展宏。 但与调试原始源代码相比,它还不够方便

如果有一个工具可以就地展开宏并替换原始源代码供gcc编译,那就太酷了

如果没有这样的工具,我将创建一个,这里有一些粗略的想法供您评论


使用“gcc-E”编译带有宏的源代码,并将结果输出到一些临时文件,在预处理文件和原始源文件之间进行一些智能差异/比较,以提取扩展的源代码,并构建最终的源代码,其宏已被扩展

一个想法是使用gcc-E,然后编辑生成的.i文件并删除受影响区域周围的#行指令。然后编译.i文件

gcc+gdb可以用来调试宏,就像它们是内联函数一样,但我认为在gcc中这将是相当多的工作