我正在寻找一种在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)发布于 2016-12-20 03:29:54
编辑:在注释之后,这是一个有效的解决方案,但它需要对齐您的代理类型,在我的例子中,这只能通过2的幂值来完成。
#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;
};https://stackoverflow.com/questions/40524189
复制相似问题