如何在GDB中访问std :: tr1 :: shared_ptr的目标

 手机用户2502873453_987 发布于 2023-01-01 14:56

如何在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.

2 个回答
  • 试试吧

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

    该函数返回指向智能指针所拥有的对象的指针.

    2023-01-01 14:57 回答
  • ptr-> get()并不总是有效.

    当我尝试ptr-> get()时,gdb抱怨:无法解析方法***:get()到任何重载的实例

    我最终去/ usr/include /找到shared_ptr的源代码来查看私有成员.

    结果证明是这样的

    ptr._M_ptr

    这个对我有用.源代码适用于所有人.

    2023-01-01 14:57 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有