是否可以输入objective-C for循环作为LLDB表达式?
我看到过传递语句,您可以在LLDB命令中输入复杂语句,如for循环(使用您正在调试的程序的语言-在本例中为Objective-C)是否可以输入objective-C for循环作为LLDB表达式?,objective-c,lldb,Objective C,Lldb,我看到过传递语句,您可以在LLDB命令中输入复杂语句,如for循环(使用您正在调试的程序的语言-在本例中为Objective-C) 我真的希望能够做到这一点。我从未学习过Python,因此不愿意为了使用可用的Python LLDB支持而花费时间来学习Python,因为一天中没有足够的时间来学习Python。您可以使用expr--…输入Objective-C语句,例如: (lldb) po myArray ( foo, bar ) (lldb) expr -- for (NSString *s
我真的希望能够做到这一点。我从未学习过Python,因此不愿意为了使用可用的Python LLDB支持而花费时间来学习Python,因为一天中没有足够的时间来学习Python。您可以使用
expr--…
输入Objective-C语句,例如:
(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
(lldb)po myArray
(
福,
酒吧
)
(lldb)expr--for(myArray中的NSString*s){(void)NSLog(@“%@”,s);}
2013-12-03 18:29:03.637我的应用程序[1373:70b]foo
2013-12-03 18:29:03.639 myapp[1373:70b]巴
根据"马丁R"的回答,
至少NSLog
似乎没有打印带有Xcode 6.0.1的内容
(lldb) expr -- for(UIWindow *w in [(UIApplication *)[UIApplication sharedApplication] windows]) { (int)printf("%s\n\n", [(NSString *)[w recursiveDescription] UTF8String]); }
或者,更简单地说,您可以只说(lldb)expr,就可以输入任意多行代码。要结束,请空行并再次按。然后,LLDB将继续计算您键入的任何代码块。但是,我不确定这是否是Python支持的一般替代方案。这两个特性(表达式解析器和脚本)具有不同的原理和用例,是的,在某些情况下,使用什么取决于您,但在其他情况下,使用其中一个更为明显。你到底想达到什么目的?我没法让它发挥作用。我尝试了简单的语句expr--(void)for(int x=0;xok,经过一些修改,我终于让它工作了。我需要在循环中对我的语句进行void转换。下面是我得到的代码:expr for(int x=0;x<5;x++){(void)printf(“x=%d\n”,x);}为什么printf需要void转换,而for循环不需要呢我正在运行的(复杂)语句是for循环。我认为它需要void cast,而不是printf。(在其他新闻中,printf返回int:-)@duncac
expr--for(int x=0;x)