1

XCode 版本 6.3.2 (6D2105)

我试图显示的变量是类型boost::posix_time::ptime,但我的问题适用于任何 C/C++ 类型。boost::posix_time::ptime的文档指定通过 date() 方法检索时间的日期部分(年、月、日),并返回时间的小数部分(小时、分钟、秒)通过 time_of_day() 方法。因此,在调试器处于活动状态时右键单击列表中的变量允许我设置摘要格式,并且只显示日期的年份部分应该类似于{$VAR.date().year()}. 理想情况下,我想2015/6/11 3:20:29在调试器视图中的变量旁边的摘要中打印,但现在我只是想显示年份部分。

但是,会显示“Summary Unavailable”,并且输出窗口会打印:

error: call to a function 'boost::date_time::date<boost::gregorian::date, boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::year() const' ('_ZNK5boost9date_time4dateINS_9gregorian4dateENS2_18gregorian_calendarENS2_13date_durationEE4yearEv') that is not present in the target

文档(PDF 格式)声明摘要格式表达式可以包含函数和方法调用,但给出的示例是针对 Objective C,而不是 C++ 。这是在主要部分Writing Data Formatters和子部分Expressions, including function or method calls

4

1 回答 1

1

您收到的错误表明您正在尝试调用您正在运行的程序中不存在的函数。如果函数仅内联存在,则使用 C++ 可能会发生这种情况。调试器目前不知道如何从头文件构造函数的可调用版本,我们当然不能调用它的内联版本。你可以通过在你的二进制文件上运行来验证这一点nm,看看周围是否真的有这样的符号。

另一种可能性是存在这样一个函数,但它与 const 不同,或者其中一个参数的类型与表达式解析器猜测的类型略有不同,因此我们正在寻找一个略有不同的重整名称,并且没有找到它。如果当你在二进制文件中确实出现了一个看似合理的候选人nm并且我们没有调用它,请在以下位置向错误报告者提交错误:

http://lldb.llvm.org

所以有人可以看看它。

于 2015-06-15T22:05:26.013 回答