首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在命名空间中不显示类

在命名空间中不显示类
EN

Stack Overflow用户
提问于 2018-02-24 16:33:55
回答 1查看 317关注 0票数 2

我试图使用平底孔来分析C++程序的内存布局,该程序在名称空间中有一些类。只列出全局命名空间中的类。是否也有列出其他类的选项?

MWE:

代码语言:javascript
复制
namespace ns {
  class Thing {
    public:
      int y;

      Thing(int y) : y(y) { }
  };
};

class Thong {
  public:
    int z;

    Thong(int z) : z(z) { }
};

int main(void) {
  ns::Thing x(1);
  Thong a(2);
  return x.y + a.z;
}
代码语言:javascript
复制
g++ -ggdb3 test.cpp
pahole --version; pahole a.out
代码语言:javascript
复制
v1.10
class Thong {
public:

    int                        z;                    /*     0     4 */
    void Thong(class Thong *, int);


    /* size: 4, cachelines: 1, members: 1 */
    /* last cacheline: 4 bytes */
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-27 16:17:59

在查看源代码之后,我发现--show_private_classes选项还打印了名称空间中定义的类。

名称空间限定符从类名中删除(ns1::foons2::foo都打印为foo),但对于我的用例来说已经足够了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48965063

复制
相关文章

相似问题

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