【问题标题】:How to examine the actual class of C++ object with LLDB?如何使用 LLDB 检查 C++ 对象的实际类?
【发布时间】:2012-12-05 06:23:14
【问题描述】:

我现在正在用 Xcode 开发 Cocos2d-x。但我不知道如何使用 LLDB 检查 C++ 对象的实际类。如图所示,Xcode 的检查器知道实际的类,但 ppo 不知道。

那么问题来了:如何用 LLDB 检查 C++ 对象的实际类?

【问题讨论】:

  • “真值类”是什么意思?
  • 我认为他的意思是“实际课程”。 C++ 没有类型信息,即通常C++ 类不知道它们是什么。好的调试器使用类型格式化来解决这个问题,LLDB 有一个类型描述格式,这可能会有所帮助:lldb.llvm.org/varformats.html
  • @JoachimPileborg 我已经更新了问题;)这是“实际课程”。
  • @LearnCocos2D 我更新了截图。可以看到 pObject 的类型是 CCObject*。但是 LLDB 知道它实际上是 CCString*。我不知道如何在控制台中提取此类信息...
  • 因为它是一个指针,你有没有试过例如p *pObject?

标签: xcode cocos2d-x lldb


【解决方案1】:

这是因为 Xcode UI 默认启用了“动态类型”。动态类型是 LLDB 的术语,表示“我要找出这个对象的实际类型”。 为了在控制台上获得相同的行为,您可以尝试输入

(lldb) frame variable -d run-target pObject

在开源的 LLDB 中,你也可以输入

(lldb) expr -d run-target -- pObject

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2019-03-25
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多