2013-03-11 46 views
4

我正在尝试调试一个广泛使用C宏(宏的嵌套宏)的应用程序。它给“使用未声明的标识符”错误。LLDB调试器 - 如何评估C宏?

有什么办法让LLDB调试器识别并正确评估它吗?我可以自己分解宏并编写完整的表达式,但它非常单调且容易出错。

回答

1

不幸的是,这种情况不会发生,因为我们没有从编译器得到宏的调试信息,这是有道理的,因为在预处理器做它的事情之后,编译器将源代码转换为机器代码之前宏会消失。

+0

是的,没有任何宏信息在铿锵声的调试信息中表示 - 它为(已经很大的)调试信息添加了更多的数据。我认为有些版本的gcc正在发布他们的DWARF。到你的程序运行lldb时,宏和'#definition'根本不可用。 – 2013-03-13 02:56:47