是否可以输入Objective-C for循环作为LLDB表达式?

Dun*_*n C 11 objective-c lldb

我已经看到传递语句,你可以输入复杂的语句,如LLDB命令中的for循环(在你正在调试的程序的语言中 - 在这种情况下是Objective-C)

我真的希望能够做到这一点.我从来没有学过Python,并且不想花时间这么做以便使用可用的python LLDB支持 - 当天没有足够的时间.

Mar*_*n R 16

您可以使用输入Objective-C语句expr -- ...,例如:

(lldb) po myArray

(
foo,
bar
)

(lldb) expr -- for (NSString *s in myArray) { (void)NSLog(@"%@", s) ; }

2013-12-03 18:29:03.637 myapp[1373:70b] foo
2013-12-03 18:29:03.639 myapp[1373:70b] bar

  • @DuncanC `expr -- for (int x = 0;x<5;x++) printf("x = %d\n", x);` 对我有用。请注意 for **语句** 缺少 void 强制转换。仅当 lldb 无法确定表达式类型时才需要进行强制转换(例如:某些 objc 消息传递) (2认同)