【发布时间】:2016-12-16 02:57:44
【问题描述】:
我需要为具有多个类层次结构的应用程序使用智能指针。调试代码时的一个困难是在 Visual Studio 2015 的监视窗口中查看智能指针(例如unique_ptr)。它总是同时显示[ptr]、[deleter] 和[Raw View],而我最关心的是关于在扩展指针视图时快速查看[ptr] 的内容。有没有办法让调试更容易并自定义显示智能指针内容的视图,使其与 Visual Studio 2015 中的原始指针相同?我知道这应该可以通过使用适当的 NavisFile 来实现,但是我不知道应该如何修改以下 NavisFile 以显示 [ptr] 的内容?
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="std::unique_ptr<*>">
<SmartPointer Usage="Minimal">_Mypair._Myval2</SmartPointer>
<DisplayString Condition="_Mypair._Myval2 == 0">empty</DisplayString>
<DisplayString Condition="_Mypair._Myval2 != 0">unique_ptr {*_Mypair._Myval2}</DisplayString>
<Expand>
<Item Condition="_Mypair._Myval2 != 0" Name="[ptr]">_Mypair._Myval2</Item>
</Expand>
</Type>
</AutoVisualizer>
【问题讨论】:
标签: c++ visual-studio c++11 smart-pointers unique-ptr