Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些由宏生成的方法。我可以在“预处理”伴侣中看到代码,它编译并运行良好。我可以逐步完成拆卸,但这并不好玩。对于写在一行上的多个语句,似乎也存在类似的问题。有什么解决办法吗?
正如您所经历的那样,宏很难调试。
那是因为它们在编译开始之前(由预处理器)被扩展,所以当 clang/gcc/icc/whatever 看到你的代码,然后为它生成调试信息,包括行表,宏就没有留下任何痕迹.
这个问题不是 LLDB 特有的,更普遍地是由于 C/C++/ObjC 编译模型的性质,它带有一个预处理器,然后是一个单独的编译器,其中只有后者有助于生成调试信息,而只有前者看到宏。