在Xcode的断点上使用Say命令

我正在使用Xcode,并希望从我的代码中设置一个说明NSString的断点.我正在做的是设置断点,然后进行编辑.我添加了一个“Shell命令”操作.第一个论点是说,第二个论据是我有麻烦的地方.

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

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

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

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

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

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

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

实现你想要的您甚至可以将Python脚本包装为新的LLDB“命令”,因此您可以创建一个调试器命令,称为明确说明底层对象描述;看看http://lldb.llvm.org/python-reference.html有关设置这些类型的脚本的介绍.

翻译自:https://stackoverflow.com/questions/18319291/using-say-command-on-a-breakpoint-in-xcode

转载注明原文:在Xcode的断点上使用Say命令