How to print exception on exception breakpoint in Xcode 6?

My app is crashing and it seems like it's caught in the exception breakpoint (which makes sense), but I am unable to get to the reason of the crash.

Here's what I've tried:

  • po $eax
  • po $rax
  • po $r0
  • po *(id *)($esp + 4)
  • For all the attempts above I'm getting the following error:

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

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

    How can I print the reason for the crash?

    I'm running iOS 8, lldb and Xcode 6.

    EDIT

    Now I see why these registers are not found. Here's what I get when I run register read :

    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 are the registers used do not contain any of the ones I had previously tried. However, I'm still unable to find the exception.

    xcode视图


    You should just type:

    po $arg1

    For more information look at: How to replace NSUncaughtExceptionHandler with definition in Breakpoint navigator?


    Emphasizing Rickster's comment from the previous answer:

    Make sure you select the correct frame.

    po $arg1 worked for me after selecting the top most "machine code" frame in the debug navigator.

    链接地址: http://www.djcxy.com/p/84012.html

    上一篇: Firebase数据中心位于何处?

    下一篇: 如何在Xcode 6的异常断点上打印异常?