首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用gdb调试C++11 rvalue引用

用gdb调试C++11 rvalue引用
EN

Stack Overflow用户
提问于 2015-11-07 18:09:06
回答 1查看 1.9K关注 0票数 12

我刚刚注意到,我不能正确地用rvalue引用来调试gdb-7.7.1

代码语言:javascript
复制
void simple(int &&i) {}

当我输入这个极简函数时,我无法获得关于i的任何有意义的信息。它是类型的,是未知的 to gdb

代码语言:javascript
复制
simple(int&&) (i=<unknown type in /tmp/test, CU 0x0, DIE 0xcd78>) at test.cpp:10
(gdb) p i
$2 = <unknown type in /tmp/test, CU 0x0, DIE 0xcd78>

我做错了什么吗?有什么合理的解决办法吗?升级到gdb-7.10会解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-17 19:21:52

不幸的是,这是由GDB Bug:14441 -需要支持DW_TAG_rvalue_reference_type造成的。

这是在gdb8.0中修正的。

参考资料:bug.cgi?id=14441

解决方案

在固定之前,可以通过这样的显式铸造来获得上述示例中的i值:

代码语言:javascript
复制
(gdb) p *(int*)i 
$3 = 69
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33586045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档