假设类型T
和长度size
已知,
如何在调试器中正常显示数组data
?
template<class T>class Container{
void* data; //<-- display it!
int size;
}
在观察窗口(Visual Studio 2015)中,我可以通过输入以下内容显示container.data
: -
static_cast<T*>(container.data),size
问题:它们是否是任何技术(尤其是修改Container
中的代码)以使此过程自动且优雅 - 例如std :: vector?
换句话说,如果我只需输入container
就可以了,那么手表会显示: -
container
+data (the + button, can click to expand)
--data[0] (expanded)
--data[1]
......
--data[size-1]
我最好的线索是使用union
,但我不确定。
答案 0 :(得分:2)
VS2015允许通过自定义.natvis
配置进行调试可视化自定义。
在其他功能中,它支持模板化类。 Name
元素的Type
属性接受星号*作为可用于模板化类名的通配符。要在可视化条目中引用模板参数,您可以使用$T1
宏。示例位于VS2015 Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers
文件夹中。