2015-11-07 25 views
5

Tôi vừa nhận thấy rằng tôi không thể gỡ lỗi rvalue tham chiếu với gdb-7.7.1 đúng cách.Gỡ lỗi C++ 11 tham chiếu rvalue với gdb

void simple(int &&i) {} 

Khi tôi nhập hàm tối giản này, tôi không thể nhận được bất kỳ thông tin ý nghĩa nào về i. Đó là loạigiá trịkhông rõ đến 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> 

Tôi có làm gì sai không? Có cách giải quyết hợp lý nào không? Sẽ nâng cấp lên gdb-7.10 giải quyết vấn đề này ?

+1

liên quan: [ Phiên bản nào của gdb và gcc cho phép xem tham chiếu rvalue?] (Http://stackoverflow.com/questions/28965431/which-versions-of-gdb-and-gcc-all ow-watching-rvalue-references) –

+0

@MarkPlotnick giải thích rất nhiều, cảm ơn –

+1

Một lỗi cũ hơn 3 năm. Wow. –

Trả lời

2

Unfortunatelly này là do một lỗi GDB: 14.441 - Cần hỗ trợ DW_TAG_rvalue_reference_type

Như câu trả lời liên quan Mark ở các bang ý kiến, đó là một gdblỗi không được cố định chưa , vì vậy việc nâng cấp sẽ không giúp ích gì.

tham khảo:https://sourceware.org/bugzilla/show_bug.cgi?id=14441

Cách giải quyết

Cho đến khi nó được cố định giá trị của i trong ví dụ trên có thể thu được bằng phương pháp đúc rõ ràng như thế:

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

Trong GDB8.0, lỗi này đã được sửa. – lz96

Các vấn đề liên quan