【发布时间】:2019-11-24 05:20:50
【问题描述】:
在 Visual Studio 2015 观察窗口中,可以通过添加逗号和数组长度来将指针视为数组,例如d,10 将为双 * d 显示 10 个元素。
是否可以创建一个基于间接次数的 Natvis 类型条目,即。对于 d、d* 和 d** 以不同的方式? 通常这些甚至是一种类型的成员,例如struct s { double* d },但我想避免为所有这些类型编写自定义可视化工具。
该问题已标记为 VS2015,但如果有任何针对 vs2017 或 vs2019 的解决方案,欢迎使用。
编辑1: 这是我正在寻找的一个简单示例:
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% 的用例。
【问题讨论】:
-
您能否给出一个简短的代码 sn-p,您想要一个可视化工具(因此请给出变量、它们的类型以及您希望它如何显示)!?
标签: arrays pointers visual-studio-2015 natvis