Search code examples
c++gdbshared-ptrtr1

How to access target of std::tr1::shared_ptr in GDB


How can I access target of a std::tr1::shared_ptr in GDB. This doesn't work:

(gdb) p sharedPtr->variableOfTarget

If I try with the pointer object itself (p sharedPtr) I get something like this:

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

With a normal pointer I can do p *ptr and get all the data or p ptr->variable for just one variable.

I'm on Centos 6.5, GCC 4.4.7-4.el6 and GDB 7.2-64.el6_5.2.


Solution

  • Try with

    (gdb) p (*sharedPtr.get())
    

    that function returns the a pointer to the object owned by the smart pointer.