加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Eclipse CDT调试:显示动态类型

发布时间:2020-12-16 07:34:03 所属栏目:百科 来源:网络整理
导读:我正在使用CDT进行C开发,它使用gdb进行调试.调试变量视图仅显示变量的声明类型 – 而不是基于vtable信息的实际类型.由于我在很大程度上依赖于动态子类,因此声明的类型通常不包含我需要的信息.我还必须删除实际子类的值.我发现了这个问题: vtable in polymor
我正在使用CDT进行C开发,它使用gdb进行调试.调试变量视图仅显示变量的声明类型 – 而不是基于vtable信息的实际类型.由于我在很大程度上依赖于动态子类,因此声明的类型通常不包含我需要的信息.我还必须删除实际子类的值.我发现了这个问题: vtable in polymorphic class of C++ using gdb
并且据说gdb能够使用以下命令基于vtable信息打印实际类型:

set print object on

但是如何在Eclipse CDT中执行此操作?

顺便说一句:这不是一个很常见的用例,所以它应该默认启用吗?只要有人使用继承和虚拟内容,在调试期间查看真实对象类型就非常重要.只显示声明的类型对我来说就像来自石器时代.

解决方法

这应该是自 CDT 8.1以来的工作,这是 Eclipse Juno发布时的CDT版本.
它需要GDB 7.5.1或更高版本才能工作.

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

我已尝试在Ubuntu 14.04上使用Juno Release和Luna M6 Release版本的CDT打包Eclipse(随GDB-7.7一起提供,它可以直接开箱即用.

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

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

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

窗口 – > Preferecnes

从菜单栏.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读