13

我想退出我正在逐步执行的当前方法。

-(void)helloWorld {
    NSLog(@"Hello");
    // I would like to return here, so that "World" isn't printed.
    NSLog(@"World");  
}

我尝试了以下方法,但没有运气。

(lldb) expr return
<no result>

lldb可以做到这一点吗?

4

3 回答 3

21

不幸的是,在 Xcode 4.5.x 中,没有办法强制从函数中提前返回。在http://lldb.llvm.org/的当前 lldb 源代码中,有一个新添加的命令 ,thread return它可以执行您想要的操作 - 它包括指定函数返回值的能力。不过,这要等到下一个主要版本才会出现在 Xcode 中。

于 2012-10-13T21:01:09.253 回答
7

当您使用 Xcode 进行调试并且程序在断点处暂停时,您可以将绿色小箭头拖动到函数中的任何其他行。例如在以下代码中:

Xcode 断点

如果我想跳过NSLog(@"B"),我可以简单地将绿色箭头从第 20 行拖到第 23 行,这意味着该函数将简单地从我想要的任何地方“返回”。

于 2012-10-13T12:01:12.610 回答
0

我刚刚在下面提到的行添加了一个断点:

var computed: Bool { 
   return device.time == 10 // added breakpoint here
}

并得到以下错误:

错误:从线程1的第0帧返回错误:我们目前只支持设置简单的整数和浮点返回类型..

似乎只适用于这两种类型

于 2019-11-19T20:09:08.173 回答