Можно ли ввести цикл objective-C for В качестве выражения LLDB?


Я видел передающие операторы, которые вы можете ввести сложные операторы, такие как цикл for в команде LLDB (на языке программы, которую вы отлаживаете - в данном случае Objective-C)

Я действительно хотел бы иметь возможность сделать это. Я никогда не изучал Python и предпочел бы не тратить время на это, чтобы использовать доступную поддержку Python LLDB - для этого просто не хватает часов в сутках.

2 9

2 ответа:

Можно ввести операторы 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

На основе ответа @ "Martin 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]); }