LLDB堆栈跟踪只显示XCode中的最后2个调用



目前在调试XCode时有问题。所有堆栈跟踪只显示最后两次调用。也不能使用lldb控制台。例如,一个简单的unrecognized selector错误只显示这个跟踪日志

* thread #1: tid = 0x2503, 0x32d2e960 libobjc.A.dylib`objc_exception_throw, stop reason = breakpoint 1.1
    frame #0: 0x32d2e960 libobjc.A.dylib`objc_exception_throw
    frame #1: 0x37c4ae06 CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 170

尝试从调试器中打印[NSThread callStackSymbols],这有时在调试器不工作时有效。我并不感到惊讶

另外,我的经验是GDB要可靠得多。

一个简单的XCode重启解决了这个问题。但过了一段时间后,这个bug一直在发生。

通过Objective-C运行时函数展开可能很棘手,程序集是手动调整的,lldb可能很难弄清楚如何展开它们。在这种情况下,看起来它向前移动了一帧,然后不能再向前移动了。

相关内容

  • 没有找到相关文章

最新更新