这可以让GDB识别预处理器符号吗?

时间:2012-03-20 14:50:17

标签: c gdb

我有很多很多C预处理器#define语句,这使我的C编程更容易。但是,在使用GDB进行调试时,符号列表中不会考虑预处理器“标签”。

是否有办法让GDB识别#define d标签?

2 个答案:

答案 0 :(得分:9)

您可以尝试使用g3进行编译,如here所述。

gcc -gdwarf-2 -g3
  

我们传递-gdwarf-2和-g3标志以确保编译器包含   有关调试信息中预处理器宏的信息。

或者您可以尝试-ggdb

答案 1 :(得分:3)

#define符号通常不包含在调试信息中。 const个变量(或inline functions for function-like macros)通常是一个更好的主意,并且出于更多原因(例如,范围界定,类型安全,多重评估等)。我建议你尽可能使用它们来支持预处理器符号。