如何使用lldb在Mac OSX上进入libc ++代码?

时间:2016-10-10 15:04:42

标签: macos lldb

我使用clang用调试符号编译了我的应用程序。当使用lldb附加到应用程序并插入例如__cxa_throw时,我看不到libc ++ abi.dylib的源代码。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您确实获得了STL的一些调试信息,因为很多STL代码都在头文件中,这些头文件被编译到您的应用程序中。但是你没有为实际编译成libc ++ abi.dylib的代码提供调试信息,因为Apple并没有为系统库分发dSYM。 __cxa_throw实际上是库中的一个函数。

作为一个单独的问题,因为大多数人实际上并不想进入STL代码,lldb有一个设置:

(lldb) set show target.process.thread.step-avoid-regexp
target.process.thread.step-avoid-regexp (regex) = ^[^ ]+ std::|^std::

这将导致人为地跨步STL中的代码。您可以通过将该值设置为""来撤消此操作。这将使您在步进时进入内联代码。