在Xcode中的断点上使用Say命令

时间:2013-08-19 17:07:24

标签: xcode

我正在使用Xcode,并希望设置一个断点,该断点从我的代码中说出一个NSString。我正在做的是设置断点,然后编辑它。我添加了一个“Shell Command”动作。第一个参数是say,第二个参数是我遇到麻烦的地方。

 NSString *myString = @"This is a test";

如果我将@myString@作为第二个参数,它会读出内存地址。恩。 0x0b4be130

如果我尝试@[myString UTF8String],它会给我另一个内存地址。

如果我取消引用myString,@*[myString UTF8String]@,它只会给我字符串的第一个字符。

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:12)

LLDB实际上有一个内置的Python解释器,整个LLDB库都暴露给它。您可以使用script调试器命令访问它。有了这个,我们可以更容易地在帧中获取变量的字符串表示,并将其发送到OS say命令。添加调试器操作:

script os.system("say " + lldb.frame.GetValueForVariablePath("myVariable").description)

实现你想要的。您甚至可以将Python脚本包装为新的LLDB“命令”,因此您可以创建一个名为say的调试器命令,该命令明确指出基础对象描述;请查看http://lldb.llvm.org/python-reference.html,了解如何设置这些类型的脚本。