NatVis: typedefs allowed?

I have a type defined as:

typedef unsigned short StringChecksum;

which I ultimately intend to use NatVis to display the corresponding value in the global row table, which we loaded into memory.

So, I defined a new NatVis for testing (this is my first time):

<?xml version="1.0" encoding="utf-8" ?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="StringChecksum">
    <DisplayString>StringChecksum {this}</DisplayString>
  </Type>
</AutoVisualizer>

I turned on NatVis debugging in the registry, and I see that my .natvis file is loaded by the debugger and successfully parsed.

I also have Edit and Continue.

However, when I debug the code and check the StringChecksum, I see no difference, it shows an integer. I was expecting it to show something like "StringChecksum 3433".

Is it possible for NatVis to work with types defined from a simple typedef? All the examples I've seen use classes. And if so, what idea may be wrong?

+4
1

- . .

, VS2012 Update 2, , .

+1

Source: https://habr.com/ru/post/1533244/


All Articles