我正在调试一个巨大的 c 源代码,它有很多宏定义。当前,宏发生段错误。
我希望能够调试宏,就像作为函数一样进入宏定义。
我试过了
./configure debugflags="-gdwarf-2 -g3"
make
但这不起作用,make 失败了。如果没有上述选项,它可以正确编译,但无法调试宏。
那么,我该如何调试宏?提前致谢
最佳答案
您可以将宏转换为 static inline
功能,例如从
#define max(a, b) (a) > (b) ? (a) : (b)
到
static inline max(int a, int b)
{
return a > b ? a : b;
}
这让编译器可以为宏(现在是函数)创建调试信息。
关于c - GDB,如何调试宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752311/