在 Visual Studio 2015 观察窗口中,可以通过添加逗号和数组长度来将指针视为数组,例如 d,10 将显示 10 个元素作为 double * d。
是否可以创建一个基于间接次数的 Natvis 类型条目,即。对于 d、d* 和 d** 以不同的方式?通常这些甚至是一种类型的成员,例如 struct s { double* d },但我想避免为所有这些类型编写自定义可视化工具。
这个问题被标记为 VS2015,但如果有的话,欢迎使用 vs2017 或 vs2019 的解决方案。
Edit1: 这是我正在寻找的一个简单示例:
struct S
{
double* v3;
double** m3;
};
int main()
{
double* pv3 = new double[3]{ -1,-2,-3 };
double** ppm3 = new double*[3]{ new double[3]{ 1,2,3 }, new double[3]{ 4,5,6 }, new double[3]{ 7,8,9 } };
S s;
s.v3 = pv3;
s.m3 = ppm3;
double v3[3] = { -1,-2,-3 };
double m33[3][3] = { { 1,2,3 }, { 4,5,6 }, { 7,8,9 } };
}
- pv3 和 s.v3 应该像 v3 和
- ppm3 和 s.m3 应该像 m33 一样可视化
我知道将每个双指针都视为双 [3] 可能不是每个人都想要的,但在某些代码库中,比如我正在研究的代码库,这是 99% 的用例。