首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用natvis解构结构数组

使用natvis解构结构数组
EN

Stack Overflow用户
提问于 2016-11-10 17:36:20
回答 1查看 175关注 0票数 0

我正在寻找一种在visual studio 2015中使用natvis在单独的数组中显示结构数组条目的方法。

显示此内容

代码语言:javascript
复制
+-x[0]
  +-a
  +-b
  +-c
+-x[1]
  +-a
  +-b
  +-c
...

作为

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2016-12-20 03:29:54

编辑:在注释之后,这是一个有效的解决方案,但它需要对齐您的代理类型,在我的例子中,这只能通过2的幂值来完成。

代码语言:javascript
复制
#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。

但是,您可以更改代码,使重叠(联合)类型与您的数组完全匹配。然后为每种类型编写单独的可视化工具:

代码语言:javascript
复制
__decltypestruct C { int a,b,c; };
struct D { int a[10], b[10], c[10]; };
union {
C c[10];
D d;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40524189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档