【问题标题】:Eclipse CDT Debugging: Show dynamic typeEclipse CDT 调试:显示动态类型
【发布时间】:2012-12-07 10:23:26
【问题描述】:

我使用 CDT 进行 C++ 开发,它使用 gdb 进行调试。调试变量视图仅显示变量的声明类型,而不是基于 vtable 信息的实际类型。由于我严重依赖动态子类化,因此声明的类型通常不包含我需要的信息。我还必须检查实际子类的值。我发现了这个问题:vtable in polymorphic class of C++ using gdb 据说gdb可以使用以下命令根据vtable信息打印实际类型:

set print object on

但是如何在 Eclipse CDT 中做到这一点?

顺便说一句:这不是一个很常见的用例,因此默认情况下应该启用它吗?一旦有人使用继承和虚拟的东西,在调试过程中看到真实的对象类型是非常重要的。只显示声明的类型对我来说就像来自石器时代。

【问题讨论】:

    标签: c++ debugging gdb eclipse-cdt


    【解决方案1】:

    这应该在CDT 8.1 之后工作,这是Eclipse Juno 发布时的CDT 版本。 它需要 GDB 7.5.1 或更高版本才能工作。

    在具有最新 GDB 的 Linux 发行版上

    我已经尝试在 Ubuntu 14.04 上使用 CDT 打包的 Eclipse 的 Juno Release 和 Luna M6 Release 版本(随附 GDB-7.7,它开箱即用。

    在 GDB 版本早于 7.5.1 的 Linux 发行版上

    如果您的发行版不提供 GDB,幸运的是它很容易构建。 您可以从http://www.gnu.org/software/gdb/download/ 下载源代码,只需按照自述文件中的说明进行操作即可。为我构建花了不到 20 分钟。

    完成后,您可以配置 Eclipse 以使用您的新 GDB 版本,方法是:

    窗口 -> 首选

    从菜单栏。

    然后导航到 GDB 条目,如下所示,并将“GDB 调试器:”条目设置为新 GDB 可执行文件的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 2011-04-26
      • 2013-10-19
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多