ios – 如何在Xcode 6中的异常断点上打印异常?

我的应用程序正在崩溃,它似乎陷入了异常断点(这是有道理的),但我无法找到崩溃的原因.

这是我尝试过的:

> po $eax
> po $rax
> po $r0
> po *(id *)($esp 4)

对于上述所有尝试,我收到以下错误

错误:使用未声明的标识符’$< register name>‘
错误:解析表达式时出错1次

我也找到了这个LLDB Command Guide,但没有找到任何有用的东西(有点令人困惑,你不知道你在寻找什么).

如何打印崩溃的原因?

我正在运行iOS 8,lldb和Xcode 6.

编辑

现在我明白为什么找不到这些寄存器.这是我运行寄存器读取时得到的结果:

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

正如您所看到的那样,使用的寄存器不包含我之前尝试过的任何寄存器.但是,我仍然无法找到例外.

解决方法

你应该输入:

po $arg1

有关更多信息,请查看:How to replace NSUncaughtExceptionHandler with definition in Breakpoint navigator?

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...