我正在寻找一种方法,在visual studio 2015中使用natvis在单独的数组中显示结构数组的条目。
显示此
+-x[0]
+-a
+-b
+-c
+-x[1]
+-a
+-b
+-c
...
作为
a
+-[0] (= x[0].a)
+-[1] (= x[1].a)
...
b
+-[0] (= x[0].b)
+-[1] (= x[1].b)
...
c
+-[0] (= x[0].c)
+-[1] (= x[1].c)
答案 0 :(得分:0)
编辑:在评论之后,这是一个有效的解决方案,但它需要对齐您的代理类型,在我的情况下,只能使用二次幂值来完成。
#define A(t) __declspec(align(t))
struct C
{
int a;
int b;
int c;
int junk;
};
A(16) struct D
{
int z;
};
A(16) struct DB {
int junk;
int z;
};
A(16) struct DC {
int junk[2];
int z;
};
typedef union
{
D da;
DB db;
DC dc;
} Ui;
typedef union
{
C c[50];
Ui d[50];
} U;
原创(不完整)答案:
每种类型都经过单独解析和可视化。因此,在解析每个x元素时,无法存储该数据以用于以后聚合a,b和c。
但是,您可以更改代码,使重叠(联合)类型与您的数组完全匹配。然后为每种类型编写单独的可视化工具:
__decltypestruct C { int a,b,c; };
struct D { int a[10], b[10], c[10]; };
union {
C c[10];
D d;
};