まめ - たんたんめん

備忘録 C# / WPF 多め

(C++)デバッグウィンドウに表示させる書式をカスタマイズする

f:id:at12k313:20180911115928p:plain

  • C++ プロジェクトにnatvisファイルを追加
  • 記述、ビルドする ( デバッグ実行時に自動的にプロジェクトに追加されているnavitsファイルがデバッガに適用される)

以下、サンプル

<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="TS::Array&lt;*&gt;">
    <DisplayString>{{[size] = {_size}}}</DisplayString>
    <Expand>
      <ArrayItems>
        <Size>_size</Size>
        <ValuePointer>_data</ValuePointer>
      </ArrayItems>
      <Item Name="size">_size</Item>
    </Expand>
  </Type>

  <Type Name="TS::TsString">
    <DisplayString>{{[data] = {_data}}}</DisplayString>
    <Expand>
      <Item Name ="string">_data</Item>
      <Item Name="size">_size</Item>
    </Expand>
  </Type>
</AutoVisualizer>
    template<typename T>
    struct Array
    {
    public:
        Array(T* data = nullptr, size_t sz = 0) :_data(data), _size(sz) {}

        operator T*() { return _data; }
        operator const T*() const { return _data; }
    public:
        void Delete()
        {
            if (_data != nullptr)
                delete _data;
            _data = nullptr;
            _size = 0;
        }
    public:
        T * _data;
        size_t _size;
    };

実行結果
f:id:at12k313:20180911121014p:plain



詳細は以下を参考に
ネイティブ オブジェクトのカスタム ビューの作成