Objective c 使用lldb在Xcode中单步执行时调试另一个选择器

Objective c 使用lldb在Xcode中单步执行时调试另一个选择器,objective-c,xcode,debugging,lldb,Objective C,Xcode,Debugging,Lldb,我的代码在(lldb)提示符处的断点处停止。我可以向对象发送消息,并在控制台上打印它们的值 (lldb) p [self computePI] (float) $1 = 3.0 哇!在这一点上有些不对劲。我希望能够进入computePI,作为找出哪些变量出错的捷径。但是,如果在该选择器上放置断点并重试,则会得到: (lldb) p [self computePI] error: Execution was interrupted, reason: breakpoint 5.1. The pro

我的代码在(lldb)提示符处的断点处停止。我可以向对象发送消息,并在控制台上打印它们的值

(lldb) p [self computePI]
(float) $1 = 3.0
哇!在这一点上有些不对劲。我希望能够进入computePI,作为找出哪些变量出错的捷径。但是,如果在该选择器上放置断点并重试,则会得到:

(lldb) p [self computePI]
error: Execution was interrupted, reason: breakpoint 5.1.
The process has been returned to the state before execution.
如果我能在此时进入computePI,这将是一个真正的节省时间的方法。这可能吗?我一直在看,什么也没看到。谢谢你的帮助

更新:根据Jason Molenda的回答,我用以下方便的别名更新了~/.lldbinit文件:

command alias nup expr -u 0 -- 
command alias nupo expr -u 0 -o --

这让我可以使用nup(代替p)和nupo(代替po)

p命令实际上是
expr--
的别名。
expr
的一个选项是
-u
--在错误时展开
--在这种情况下,断点被视为“错误”(其本身可能被视为一个错误-这是有争议的,在某些使用情况下,它的行为不同是不直观的)

无论如何,你应该能做到

(lldb) expr -u false -- [self computePI]
它将在断点处停止。这里的
--
expr
指示它应该停止进行选项解析,之后的所有操作都是要计算的表达式