If you are going to run this in the simulator, you can enter the following after the "(lldb)" prompt:
(lldb) po $eax
LLDB is the default debugger in xcode 4.3 or later versions. If you are using an older version of xcode, you will also GDB debugger. They have some basic same commands, so if your xcode uses the "(gdb)" prompt instead of the "(lldb)" prompt, you can do it more with it without any problem.
The "po" command is the abbreviation for "print object". "$eax" is a register of cup. In an exception case, this register will contain a pointer to the exception object. Note: $eax will only work in the simulator. If you debug on the device, you will need to use the "$r0" register.
For example, if you type:
(lldb) po [$eax class]
You'll see something like this:
(id) $2 = 0x01446e84 NSException
These numbers don't matter, but it's obvious that the NSException object you're dealing with is here.
You can call any method on this object. For example:
(lldb) po [$eax name]
This will output the name of this exception, here is NSInvalidArgumentException, and:
(lldb) po [$eax reason]
This will output an error message:
(unsigned int) $4 = 114784400 Receiver () has no segue with identifier 'ModalSegue'
Notice:When you only use "po $eax", this command will call the "description" method on the object and print it out. In this case, you will also get the error message.
The above article is based on lldb debugging skills (recommended) in the reverse process of ios. I hope it can give you a reference and I hope you can support me more.