如何使用lldb在iOS模拟器中调用类方法?

时间:2012-03-27 10:27:21

标签: ios debugging lldb

我正在尝试调试iOS应用,我在模拟器中遇到lldb问题。调用类方法似乎不起作用。实例方法工作正常。

(lldb) po Category
<no result>
(lldb) po [Category class]
error: Couldn't prepare the expression for execution in the target
(lldb) po self
(TagsTableViewController *) $5 = 0x085585a0 <TagsTableViewController: 0x85585a0>

我已经尝试过4.3和5.1模拟器,但两者都表现出相同的问题。

在设备上进行调试时,一切正常。

2 个答案:

答案 0 :(得分:19)

这很有效。感谢@devioustree在上面的评论中回答。

基本命令的结构如下:

po [(Class)objc_getClass("ClassName") class]

调用someClassMethodHere

po [[(Class)objc_getClass("ClassName") class] someClassMethodHere]

答案 1 :(得分:0)

添加此项以扩展已接受的答案......

如果您尝试为lldb中的变量分配一个新值,就像我一样,而不是仅打印出值,那么就这样做......

expr self.myArray = (NSArray*)[[(Class)objc_getClass("NSArray") class] arrayWithObjects:@"valueOne",@"valueTwo",@"etc",nil]