How to print an exception at an exception checkpoint in Xcode 6?

My application crashes and it looks like it hit the exception breakpoint (which makes sense), but I can't get to the cause of the crash.

Here is what I tried:

  • po $eax
  • po $rax
  • po $r0
  • po *(id *)($esp + 4)

For all the attempts above, I get the following error:

error: use of undeclared identifier '$<register name>' error: 1 errors parsing expression

I also found this LLDB Command Guide , but did not find anything useful (confusing it a bit, you don't know what you're “looking for”).

How to print the reason for the failure?

I am running iOS 8, lldb and Xcode 6.

EDIT

Now I understand why these registers were not found. Here is what I get when register read starts:

 General Purpose Registers: x0 = 0x0000000000000001 x1 = 0x0000000000000000 x2 = 0x0000000000000000 x3 = 0x0000000195531a74 libsystem_malloc.dylib`nano_free_definite_size x4 = 0x0000000000000000 x5 = 0x0000000000000000 x6 = 0x676e697274534643 x7 = 0x0000000000000f80 x8 = 0x00000001569d5a10 x9 = 0x0000000000000000 x10 = 0x000001a574056051 x11 = 0x0000000000000001 x12 = 0x000000000000003d x13 = 0x0000000000000000 x14 = 0x0000000000000001 x15 = 0x0000000000000052 x16 = 0x0000000194d6e510 libobjc.A.dylib`object_setClass x17 = 0x0000000000000000 x18 = 0x0000000000000000 x19 = 0x00000001702823f0 x20 = 0x0000000174038eaa x21 = 0x000000019130a778 "release" x22 = 0x0000000000000000 x23 = 0x0000000174246d20 x24 = 0x0000000174038ea0 x25 = 0x00000001895d22fa "forwardingTargetForSelector:" x26 = 0x00000001745186a0 x27 = 0x0000000000000000 x28 = 0x00000000a40008ff fp = 0x0000000105757720 lr = 0x000000018462a440 CoreFoundation`___forwarding___ + 968 sp = 0x00000001057576c0 pc = 0x000000018462a440 CoreFoundation`___forwarding___ + 968 cpsr = 0x20000000 

As you can see, these registers used do not contain any of those that I previously tried. However, I still cannot find an exception.

xcode view

+7
ios objective-c xcode
source share
2 answers

You should simply enter:

po $arg1

For more information, see: How to replace NSUncaughtExceptionHandler with a breakpoint definition in the navigator?

+4
source share

Emphasizing Rickster's comment from a previous answer:

Make sure you select the correct frame.

po $arg1 worked for me after choosing the topmost “machine code” in the debug navigator.

0
source share

All Articles