如何调试预处理器宏

hfh*_*hc2 7 c debugging c-preprocessor

我最近遇到过这个项目.代码主要用C语言编写,API只包含几个C函数.不幸的是,该项目似乎包含一些错误,特别是我不断得到"双重免费或腐败"错误.我正在尝试使用valgrind和gdb来找出问题所在.问题似乎是在内存分配器中.不幸的是,第一个valgrind错误发生在头中定义的约400行长预处理器宏中.不幸的是,gdb无法破坏生成的代码.堆栈跟踪也不是很有用.有没有什么技术可以用来处理这类错误?

Ben*_*hon 3

在线编译器 Wandbox.org 有一个“CPP”模式,对于试验 C 预处理器非常有用。

请参阅此处的示例:https ://wandbox.org/permlink/tFUsKMIXaQj8hhte

您可以离线执行相同的操作,使用gcc -Pcl.exe /E