在 Xcode 中,您可以使用评估抛出异常的描述的条件设置断点,以确定是否在该断点处停止。这在使用 Core Data 时特别有用,因为 Core Data 在内部作为控制流机制抛出异常,并且您希望停止异常,而不是 Core Data。(注意:如果您想知道如何按所述过滤异常,请在 SO 问题Ignore certain exceptions when using Xcode's All Exceptions breakpoint 中回答)。
但是,这些过滤器通常依赖于寄存器的内容,因为异常的地址存储在那里。在模拟器中(在 Intel 架构上运行),寄存器是$eax
,但在设备(ARM 架构)上是$r0
.
是否可以制作一个区分两种架构的表达式,以便一个表达式使用正确的寄存器,而不管当前使用的架构如何?