如何在GDB中访问std :: tr1 :: shared_ptr的目标.这不起作用:
(gdb) p sharedPtr->variableOfTarget
如果我尝试使用指针对象本身(p sharedPtr
)我得到这样的东西:
$1 = std::tr1::shared_ptr (count 2) 0x13c2060
使用普通指针,我可以完成p *ptr
并获取所有数据或p ptr->variable
仅获取一个变量.
我在Centos 6.5,GCC 4.4.7-4.el6和GDB 7.2-64.el6_5.2.
试试吧
(gdb) p (*sharedPtr.get())
该函数返回指向智能指针所拥有的对象的指针.
ptr-> get()并不总是有效.
当我尝试ptr-> get()时,gdb抱怨:无法解析方法***:get()到任何重载的实例
我最终去/ usr/include /找到shared_ptr的源代码来查看私有成员.
结果证明是这样的
ptr._M_ptr
这个对我有用.源代码适用于所有人.