Wie Sie Zugang zu target von std::tr1::shared_ptr in GDB

Wie kann ich Ziel, std::tr1::shared_ptr in GDB. Das funktioniert nicht:

(gdb) p sharedPtr->variableOfTarget

Wenn ich versuche mit der pointer-Objekt selbst (p sharedPtr) bekomme ich so etwas wie dieses:

$1 = std::tr1::shared_ptr (count 2) 0x13c2060

Mit einem normalen Zeiger kann ich tun p *ptr und erhalten Sie alle Daten oder p ptr->variable für nur eine variable.

Bin ich auf Centos 6.5, GCC-4.4.7-4.el6 und GDB-7.2-64.el6_5.2.

  • Die compiler und stdlib verwenden Sie? Auch welche version von GDB?
  • sorry! Aktualisiert meine Frage.
  • haben Sie versucht (gdb) p sharedPtr.get()?
  • Miranda, Das hat funktioniert! Dank sehr viel! Ich werde die Antwort in einem Augenblick.
  • Ich war nicht in der Lage, Antwort auf meine eigene Frage noch, da ich zu wenig Ruf. Dies ist, was funktioniert: p (*sharedPtr.get()) druckt den Inhalt des Ziel-Objekts und der p (*sharedPtr.get())->variableOfTarget druckt eine einzelne variable. Komisch ist aber, dass, wenn man die Klammern wie diese p *sharedPtr.get() es wird ferner die Ausführung des Programms. Kann mir jemand erklären, warum das so ist?
  • unique_ptr: stackoverflow.com/questions/22798601/...

Schreibe einen Kommentar