【问题标题】:Using Say command on a breakpoint in Xcode在 Xcode 的断点上使用 Say 命令
【发布时间】:2013-08-20 23:09:42
【问题描述】:

我正在使用 Xcode 并想设置一个断点,该断点从我的代码中读取 NSString。我正在做的是设置断点,然后编辑它。我添加了一个“Shell 命令”动作。第一个参数是say,第二个参数是我遇到问题的地方。

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

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

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

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

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

【问题讨论】:

    标签: xcode


    【解决方案1】:

    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 了解设置这些类型的脚本的介绍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 2021-11-07
      • 2021-06-20
      • 1970-01-01
      • 2023-04-06
      • 2021-04-24
      • 2016-09-19
      • 1970-01-01
      相关资源
      最近更新 更多