在调试器中查看C ++ shared_ptr内容

时间:2014-08-24 07:59:47

标签: c++ xcode debugging

在xcode中调试C ++代码,有没有办法查看std :: shared_ptr的内容?

如果我看看'观看'窗口所有我能看到的是__ptr =(element_type *)0xa66945c

并撰写“myPointer'在即时窗口中也只打印内存地址。

我还尝试过观看" __ ptr _"'并且'查看" * __ ptr _"'但它只能让我看到

原始内存,没有实际的可读文本

有人能建议一种方法来查看我有指针的对象吗?

3 个答案:

答案 0 :(得分:1)

LLDB中的fr命令有一个--ptr-depth参数,可以在这些情况下提供帮助。例如,尝试在即时窗格中输入:

fr var myPointer --ptr-depth=1

答案 1 :(得分:0)

我认为最好的方法是在std :: cout语句中硬编码以显示对象的内容(如果有的话)......

答案 2 :(得分:0)

尝试右键单击__ptr_并选择"将值视为" - > "自定义类型"

在弹出的字段中,将element_type替换为std :: shared_ptr指向的实际类型。

我发现这样的事情在默认情况下不起作用是荒谬的。