Cemal Eker
Cemal Eker

Reputation: 1266

LLDB stack trace only shows last 2 calls in XCode

Currently having trouble debugging with XCode. All stack traces only show last two calls made. Can't use lldb console too. For example a simple unrecognized selector error only shows this trace log

* 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

Upvotes: 6

Views: 2304

Answers (3)

tc.
tc.

Reputation: 33592

Try printing [NSThread callStackSymbols] from the debugger, which sometimes works when the debugger doesn't. It doesn't really surprise me that

Additionally, my experience is that GDB is far more reliable.

Upvotes: 6

Jason Molenda
Jason Molenda

Reputation: 15385

Unwinding through the Objective-C runtime functions can be tricky on arm, the assembly is hand-tuned and lldb can have trouble figuring out how to unwind past them. In this case it looks like it got one frame farther and then couldn't get any farther.

Upvotes: 0

Cemal Eker
Cemal Eker

Reputation: 1266

A simple XCode restart solved the problem. But this bug keep happening after a while later. I'll report a bug about this.

Upvotes: 5

Related Questions