VS2015 Visualiser, (*.natvis) DisplayString 调用函数显示值
Posted
技术标签:
【中文标题】VS2015 Visualiser, (*.natvis) DisplayString 调用函数显示值【英文标题】:VS2015 Visualiser, (*.natvis) DisplayString call a function to display the value 【发布时间】:2015-12-05 07:24:05 【问题描述】:我有一个复杂的类 (MyClass),它有一个名为 ToString() 的函数,该函数返回字符串的字符串表示形式。
我希望 Visual Studio 可视化器使用该函数来显示变量
这是我的可视化工具,
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="MyClass">
<DisplayString>...</DisplayString>
</Type>
</AutoVisualizer>
如果我使用
...
<DisplayString>ToString</DisplayString>
...
函数的地址返回,是否可以显示函数的结果?
如果不是,显示类的字符串表示的最佳方式是什么?
【问题讨论】:
【参考方案1】:方法不能被调用。
来自MSDN Forums:
从调试器调用函数是在玩火。您可能会在跨线程依赖项上死锁(即使您没有任何显式的跨线程依赖项,也有用于内存分配之类的共享锁)。这就是 C++ 调试器不支持隐式 funceval 的原因
【讨论】:
猜猜这是有道理的……但并不理想。 鉴于监视窗口中支持方法,并且其他语言的默认可视化工具也支持,我怀疑评论更多的是借口。如果有人可以为此编写一个可视化插件,那就太好了。 为什么访问类中的非原子数据成员不一样?它可能具有跨线程依赖关系。我在这里很有偏见,因为无论如何我只想要功能;)以上是关于VS2015 Visualiser, (*.natvis) DisplayString 调用函数显示值的主要内容,如果未能解决你的问题,请参考以下文章
Yellowbrick visualiser.fit() 引发 ValueError