2015-11-07 23 views
5

gdb-7.7.1rvalue başvuruları hata ayıklamadığımı fark ettim.Hata ayıklama C++ 11 rdue referansları gdb

void simple(int &&i) {} 

bu minimalist işlevini girdiğinizde ben i hakkında herhangi anlamlı bilgi elde edilemez. tip ve değeribilinmiyor - 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> 

Yanlış bir şey yapıyorum? Mantıklı bir çözüm var mı? gdb-7.10'a yükseltme işlemi bu sayısını çözebilir mi? Maalesef bu bir GDB Bug kaynaklanır

+1

İlgili: [ Gdb ve gcc'in hangi sürümleri referans referanslarını izlemeyi sağlar?] (Http://stackoverflow.com/questions/28965431/which-versions-of-gdb-and-gcc-all ow-tracking-rvalue-references) –

+0

@MarkPlotnick çok açıklar, teşekkürler –

+1

3+ yaşında bir hata. Vay. –

cevap

2

: 14441 - comments eyaletlerde Mark ile bağlantılı cevap olarak DW_TAG_rvalue_reference_type

destekleyecek İhtiyacı, henüz sabit olmayan bir gdbhata olduğunu Bu yüzden yükseltme yapmak yardımcı olmaz.

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

Geçici yukarıda örnekte i değerini sabit kadar bu gibi açık bir akışı ile elde edilebilir

:

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

GDB8.0'da bu işlem düzeltildi. – lz96