c++11 - 使用 gdb 调试 C++11 右值引用

标签 c++11 gdb rvalue-reference

我刚刚注意到我无法调试 右值 引用 gdb-7.7.1正确。

void simple(int &&i) {}

当我进入这个极简函数时,我无法获得有关 i 的任何有意义的信息。 .它是 类型 未知 gdb .
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解决这个问题?

最佳答案

不幸的是,这是由 引起的GDB 错误 :14441 - 需要支持 DW_TAG_rvalue_reference_type

这是 在 GDB 8.0 中修复 .

引用:https://sourceware.org/bugzilla/show_bug.cgi?id=14441

解决方法

直到它被固定 i 的值在上面的例子中可以通过像这样的显式转换来获得:

(gdb) p *(int*)i 
$3 = 69

关于c++11 - 使用 gdb 调试 C++11 右值引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586045/

相关文章:

c++ - 如何使一个线程 "promptly"中的内存存储在其他线程中可见?

assembly - 如何在gdb中的地址指定的指令上中断?

c++ - eclipse CDT : how to enable project debugging

c++ - 右值函数重载

c++11:字符串文字的恒定时间查找函数

c++ - 非复制 std::shared_ptr<boost::any>?

c++ - 试图取消引用迭代器的段错误

c - 如何使用GDB调试依赖文件?

c++ - 我是否需要为右值引用显式地重载接受 const 左值引用的方法?

c++ - 右值引用参数和模板函数