我现在在 MAC 中使用 LLDB(相当新的用户)。我有以下示例代码:
MessageCacheItem::pointer msg = getValue(objId);
bool outdated = (NULL != msg.get()) && (msgSentTime > msg->m_msgSentTime);
return outdated;
MessageCacheItem
是一个具有私有(private)成员 m_msgSentTime
的类。在 LLDB 中,我使用了以下命令:
fr v msg->m_msgSentTime
它给了我以下错误:
error: "msg" is not a pointer and -> was used to attempt to access "m_msgSentTime". Did you mean "badge.m_msgSentTime"?
虽然 msg
是指向类实例的 shared_pointer。
我的问题是:如何在 LLDB 中使用指向类实例的指针检查类的成员?
最佳答案
而不是使用
fr v msg->m_msgSentTime
请改用以下内容:
p msg->msgSentTime
但是,我还没有发现这两个命令之间的区别在哪里(以防万一有人看到同样的问题,我回答了我自己的问题)。如果任何 LLDB 高手知道其中的区别,欢迎您添加更多。
关于c++ - 如何通过指向类实例的指针获取LLDB中类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812492/