2016-12-16 6 views
2

クラスの階層構造を持つアプリケーションにスマートポインタを使用する必要があります。 Visual Studio 2015のウォッチウィンドウ内にスマートポインタ(例:unique_ptr)を表示するのは、コードをデバッグする際の1つの難点です。[ptr]の内容をすばやく見ている間は、常に[ptr],[deleter][Raw View]が表示されますポインタのビューを拡大します。デバッグを簡単にし、Visual Studio 2015でスマートポインタの内容を生ポインタと同じに表示するビューをカスタマイズする方法はありますか?私はこれが適切なNavisFileを使って実行可能でなければならないことを知っていますが、の内容を表示するために次のNavisFileをどのように変更する必要があるのか​​分かりませんか?ビジュアルスタジオのスマートポインタオブジェクトのカスタムビュー?

<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 

    <Type Name="std::unique_ptr&lt;*&gt;"> 
     <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> 

答えて

3

私は専門家ではないが、あなたは、単に例えば、<Expand>ノードを削除してから、ちょうど_Mypair._Myval2を表示するために、第2 <DisplayString>を変えることができるように思える:

<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 

    <Type Name="std::unique_ptr&lt;*&gt;"> 
     <SmartPointer Usage="Minimal">_Mypair._Myval2</SmartPointer> 
     <DisplayString Condition="_Mypair._Myval2 == 0">empty</DisplayString> 
     <DisplayString Condition="_Mypair._Myval2 != 0">_Mypair._Myval2</DisplayString> 
    </Type> 


</AutoVisualizer> 
+0

をはい、あなたが言ったように、この作品。あなたの答えに多くの感謝。 –

関連する問題