Objective c 使用lldb在Xcode中单步执行时调试另一个选择器
我的代码在(lldb)提示符处的断点处停止。我可以向对象发送消息,并在控制台上打印它们的值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) 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
指示它应该停止进行选项解析,之后的所有操作都是要计算的表达式