0
我使用鏗鏘編譯我的應用程序調試符號。當使用lldb附加到應用程序並進入例如__cxa_throw時,我沒有看到libC++ abi.dylib的源代碼。我究竟做錯了什麼?如何在Mac OSX上使用lldb進入libC++代碼?
我使用鏗鏘編譯我的應用程序調試符號。當使用lldb附加到應用程序並進入例如__cxa_throw時,我沒有看到libC++ abi.dylib的源代碼。我究竟做錯了什麼?如何在Mac OSX上使用lldb進入libC++代碼?
你確實得到了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步過。您可以通過將該值設置爲「」來撤消此操作。這將使您在步進時進入內聯代碼。