lldb Xcode:错误:'printf'不是有效命令

时间:2012-10-02 15:18:55

标签: ios xcode lldb

我正在使用Xcode 4.3.3,我想设置符号端点。我为所有objc_msgSend符号创建了一个符号断点,我想将它与“调试器输出”结合起来。

我按照this post in SO的提示操作。但是在我的调试器中有消息

  

错误:'printf'不是有效命令。

出现。任何线索?我想为每个函数调用一个消息[类方法]在调试器区域中打印。喜欢这个

[UIApplication sharedApplication]
[UIApplication _isClassic]
[NSCFString getCString:maxLength:encoding:]
[UIApplication class]
[SLSMoleculeAppDelegate isSubclassOfClass:]
[SLSMoleculeAppDelegate initialize]

1 个答案:

答案 0 :(得分:4)

如果在断点设置中将“expr - ”前缀添加到调试器命令,它将与lldb一起使用:

expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )

然而,解决方案并不完美,因为调试器在每次输出后打印“无结果”:

[OS_xpc_dictionary, _xref_dispose]
<no result>
[NSObject, initialize]
<no result>
[OS_object, initialize]
<no result>

我没有找到任何可以抑制“无结果”输出的内容,可能是不可能的,请参阅this Open Radar