VS2015 Visualiser,(*.natvis)DisplayString调用一个函数来显示值

FFM*_*FMG 5 debugging visual-studio natvis visual-studio-2015

我有一个复杂的类(MyClass),它有一个名为ToString()的函数,该函数返回字符串的字符串表示形式.

我希望visual studio visualiser使用该函数来显示变量

这是我的可视化工具,

<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="MyClass">
    <DisplayString>...</DisplayString> 
  </Type>
</AutoVisualizer>
Run Code Online (Sandbox Code Playgroud)

如果我使用

...
  <DisplayString>{ToString}</DisplayString> 
...
Run Code Online (Sandbox Code Playgroud)

返回函数的地址,是否可以显示函数的结果?

如果没有,那么显示类的字符串表示的最佳方法是什么?

Tho*_*ler 5

不能调用方法。

来自MSDN 论坛

从调试器调用函数是在玩火。您可能会在跨线程依赖项上死锁(即使您没有任何明确的跨线程依赖项,也有用于内存分配之类的共享锁)。这就是 C++ 调试器不支持隐式 funceval 的原因

  • 鉴于观察窗口支持这些方法,并且其他语言的默认可视化工具也支持这些方法,我怀疑评论更像是一个借口。如果有人可以为此编写一个可视化插件,那就太好了。 (5认同)