c - GDB,如何调试宏

标签 c gdb

我正在调试一个巨大的 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/

相关文章:

c - fprintf() 函数是否设置 errno 作为其错误指示?

gdb - 相当于 "info locals"以十六进制转储局部变量

fortran - gdb 中 pretty-print Fortran 动态类型

c - 如何在另一个 C 任务中调用 JNI 的 C 方法?

c - 定义具有文件范围的结构以供多个函数访问

c - 在 C 中将 strsep() 与动态字符串数组一起使用

c - 在不使用 C 中的第三个变量的情况下交换两个变量的值?

更改已定义常量的值

c - gdb 堆栈溢出

c - __strcpy_sse2_unaligned 与 -fno-builtin