2015-11-07 13 views
5

के साथ सी ++ 11 रावल्यू संदर्भों को डीबग करना मैंने अभी देखा है कि मैं रैल्यूgdb-7.7.1 के साथ संदर्भों को ठीक से डीबग नहीं कर सकता।जीडीबी

void simple(int &&i) {} 

जब मैं इस minimalistic समारोह में प्रवेश मैं 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 पर अपग्रेड किया जाएगा अंक को हल करें?

+1

संबंधित: [ जीडीबी और जीसीसी के कौन से संस्करण रैवल्यू संदर्भ देखने की अनुमति देते हैं?] (Http://stackoverflow.com/questions/28965431/which-versions-of-gdb-and-gcc-all ओउ-व्यू-रावल्यू-रेफरेंस) –

+0

@ मार्क प्लॉटनिक जो बहुत कुछ बताता है, धन्यवाद –

+1

ए 3+ साल पुरानी बग। वाह। –

उत्तर

2

Unfortunatelly यह एक GDB बग के कारण होता है: 14,441 - DW_TAG_rvalue_reference_type

जवाब टिप्पणियों राज्यों में मार्क से जुड़े हुए के रूप में समर्थन करने की आवश्यकता है, यह एक gdbबग कि अभी तक तय नहीं किया गया है , इसलिए उन्नयन मदद नहीं करेगा।

संदर्भ:https://sourceware.org/bugzilla/show_bug.cgi?id=14441

वर्कअराउंड

तक यह ऊपर के उदाहरण में i का मूल्य तय हो गई है कि तरह स्पष्ट कास्टिंग द्वारा प्राप्त किया जा सकता है:

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

जीडीबी 8.0 में यह तय किया गया है। – lz96