相当于;说明“;对于C++;课程目标-C++;? 我希望能够调试包含C++类实例的ObjtoVC++代码。

相当于;说明“;对于C++;课程目标-C++;? 我希望能够调试包含C++类实例的ObjtoVC++代码。,c++,ios,objective-c,objective-c++,lldb,C++,Ios,Objective C,Objective C++,Lldb,对于objective-c类,我可以简单地实现description以返回一个人类可读的字符串,然后当我在lldb中po var时,我立即知道我需要知道的关于实例的任何信息 P>是否有任何方法可以实现对ObjuleC++代码使用的C++类?。在LLDB中最简单的方法是为C++类添加一个“概要格式化程序”。本网页提供了一个很好的介绍如何做到这一点: 查找“类型摘要”部分 如果类的ivar值直接包含您希望看到的关于该类的所有内容,那么您可以创建一个摘要字符串,该字符串将显示ivar值和您认为需要

对于objective-c类,我可以简单地实现
description
以返回一个人类可读的字符串,然后当我在lldb中
po var
时,我立即知道我需要知道的关于实例的任何信息


<> P>是否有任何方法可以实现对ObjuleC++代码使用的C++类?

。在LLDB中最简单的方法是为C++类添加一个“概要格式化程序”。本网页提供了一个很好的介绍如何做到这一点:

查找“类型摘要”部分

如果类的ivar值直接包含您希望看到的关于该类的所有内容,那么您可以创建一个摘要字符串,该字符串将显示ivar值和您认为需要的任何标记文本,而无需使用LLDB Python API来分解该类。如果您需要做更多的工作来生成摘要,则必须使用特洛伊木马程序建议的Python API

例如,如果您为C++类编写了一个“描述”方法,可以使用LLDB的Python API调用该方法并返回字符串作为摘要。但如果可能,最好从类的静态知识生成摘要,因为在调试器中运行代码通常比检查内存慢

还有关于如何使用LLDB Python接口在同一页面上生成摘要的信息

您编写的类型摘要可以添加到.lldbinit文件中,当您在lldb中打印该类的实例时,以及在Xcode的Locals视图中的summary列中,都会显示摘要值


注意,你可以对任何类型的C、C++或Objc进行此操作。许多C++ STL类和更常见的基础类都有使用相同机制的内置摘要。这就是LLDB在XCODE中看到的一行摘要,而不是描述方法,您必须做任何对C++对象类的操作,而不是在ObjuleC++中使用。我知道我可以添加一个<代码>描述()/<代码>方法,并从LLDB调用它。我想知道我是否可以在XCODE(AppCode的)调试器变量中快速地看到它,而不必显式调用任何方法,比如我可以为Objy-C类实现代码> >描述< /C>。我认为C++需要使用Python中实现的LLDB扩展。这意味着,您仍然必须为C++实例中的Objc对象自己做IVAR工作,因为使用格式字符串中的%@仅适用于Objc对象,并且不等同于LLDB中的PO。例如,可以向C++对象添加GETDebug GISDATION()成员函数,然后执行NSLAST(@)Fo{{Bar=%@,CPPARB= %S},“自->条,自-> CPPPAR.GETDebug GISDATION().CXSTRE());有趣的是,“po”是一种语言定义的行为。也就是说,它的意思是“评估我的表达,然后使用某种语言认可的机制来描述它”。恰好ObjC定义了这样一种机制(-description)。OTHH,C++领域中没有明显的和普遍一致的东西。你可以实现ostream操作符太棒了!谢谢不知道
.lldbinit
。我想知道我是否可以在代码中做些什么——所以它将是一个特定于类的设置,而不是一个特定于home dir的设置。