2015-01-09 27 views
0

我有課,基本上看起來像下面,我想提出那麼在可視化調試更加易讀:的Visual Studio .natvis文件,類可視化的陣列

template <typename T, precision P = defaultp> 
struct tvec4 
{ 
    T x, y, z, w; 
}; 

template <typename T, precision P = defaultp> 
struct tmat4x4 
{ 
    typedef tvec4<T, P> col_type; 

private: 
    col_type value[4]; 
}; 

這裏是什麼natvis文件的樣子對於載體:

<Type Name="glm::tvec4&lt;*&gt;"> 
    <DisplayString>{x}, {y}, {z}, {w}</DisplayString> 
    <Expand> 
     <Item Name="x">x</Item> 
     <Item Name="y">y</Item> 
     <Item Name="z">z</Item> 
     <Item Name="w">w</Item> 
    </Expand> 
</Type> 

哪些工作正常。但是,對於矩陣類,我無法設法讓任何東西工作。

Try1:

<Type Name="glm::tmat4&lt;*&gt;"> 
    <DisplayString>{{value[0]}, {value[1]}, {value[2]}, {value[3]}}</DisplayString> 
    <Expand> 
     <Item Name="[0]">value[0]</Item> 
     <Item Name="[1]">value[1]</Item> 
     <Item Name="[2]">value[2]</Item> 
     <Item Name="[3]">value[3]</Item> 
    </Expand> 
</Type> 

Try2:

<Type Name="glm::tmat4&lt;*&gt;"> 
    <DisplayString>{size = {4 x 4}}</DisplayString> 
    <Expand> 
     <Item Name="[size]">4</Item> 
     <Item Name="[capacity]">4</Item> 
     <ArrayItems> 
      <Size>4</Size> 
      <ValuePointer>value</ValuePointer> 
     </ArrayItems> 
    </Expand> 
</Type> 

任何想法,我究竟做錯了什麼?

謝謝! Christophe

回答

0

這是一個老問題,所以我假設你現在有一個解決方案,但以防萬一別人有類似的問題它下降到你的描述中使用大括號:

<DisplayString>{{value[0]}, {value[1]}, {value[2]}, {value[3]}}</DisplayString> 

單括號{}表示該內容應該由調試器來解釋,但如果你真的想支架作爲描述的一部分,那麼你需要至 使用雙括號:

{{Text here {variable_name_here}}} 

所以你的情況會作出正確的顯示字符串:

<DisplayString>{{{value[0]}, {value[1]}, {value[2]}, {value[3]}}}</DisplayString> 
相關問題