我刚刚注意到我无法调试 右值 引用 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/