我正在WWDC会话412-Xcode中的调试。那里有一个有关为自己的类创建自定义LLDB摘要的演示。

我根本无法显示摘要。

通过在Python脚本中插入打印调用,我已经能够确定:

  • 脚本文件正在导入
  • __lldb_init_module从未被称为

  • 关于什么可以阻止__lldb_init_module被调用的任何想法?需要在特定时间导入脚本吗?

    最佳答案

    对我来说,通过添加

    command script import /path/to/CustomSummaries.py
    

    ~/.lldbinit文件并重新启动Xcode,或者通过在“main”中设置断点并在调试器控制台中执行import命令。

    我使用最小的自定义描述脚本对其进行了测试:
    import lldb
    
    def myobject_summary(valueObject, dictionary):
    
        return 'MyCustomDescription'
    
    def __lldb_init_module(debugger, dict):
    
        debugger.HandleCommand('type summary add MyObject -F CustomSummaries.myobject_summary')
    

    这是Xcode调试器窗口中的视图:

    请注意,更改脚本后必须重新启动Xcode。如果脚本是在Xcode调试器控制台中导入的,似乎init方法中“print”语句的输出也不会显示。

    09-11 16:18
    查看更多