我正在使用Xcode,并希望设置一个断点,从我的代码中说出一个NSString.我正在做的是设置断点,然后编辑它.我添加了一个"Shell Command"动作.第一个参数是say,第二个参数是我遇到麻烦的地方.
NSString *myString = @"This is a test";
Run Code Online (Sandbox Code Playgroud)
如果我把它@myString@作为第二个参数,它会读出内存地址.恩.0x0b4be130
如果我尝试@[myString UTF8String],它会给我另一个内存地址.
如果我取消引用myString,@*[myString UTF8String]@它只给我字符串的第一个字符.
我该怎么做呢?
Ada*_*ght 13
LLDB实际上有一个内置的Python解释器,整个LLDB库都暴露给它.您可以使用scriptdebugger命令访问它.有了这个,我们可以更容易地在帧中获取变量的字符串表示,并将其发送到OS say命令.添加调试器操作:
script os.system("say " + lldb.frame.GetValueForVariablePath("myVariable").description)
Run Code Online (Sandbox Code Playgroud)
实现你想要的.您甚至可以将Python脚本包装为新的LLDB"命令",因此您可以创建一个调用的调试器命令say,该命令显式地表示基础对象描述; 请查看http://lldb.llvm.org/python-reference.html,了解如何设置这些类型的脚本.
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |