【问题标题】:c++ tool for visualising memory alignment?用于可视化内存对齐的 C++ 工具?
【发布时间】:2010-12-31 23:28:37
【问题描述】:

是否有一个工具,也许是 Visual Studio 的插件,可以为我可视化我的类和结构的内存对齐?

谢谢!

【问题讨论】:

  • 你想要什么可视化?给定类的对齐要求?或者特定对象的地址有多对齐?又应该如何可视化?
  • 我的意思是为我的所有类、结构和联合创建这样的图形:publib.boulder.ibm.com/infocenter/zos/v1r9/topic/… 或这样:docs.hp.com/en/B3901-90002/img/gfx12.gif
  • 你为什么需要它?听起来你想对你的类的底层位表示做太多的事情。
  • 是的,我喜欢这样做。有时您还希望优化结构对齐方式(取决于成员变量的顺序,结构变得更大或更小)。当然我可以自己绘制对齐方式,但是为此使用图形工具会更方便
  • 通过从最大的成员到最小的成员最后排列成员,编译器将为您提供最佳对齐方式。

标签: c++ visualization alignment


【解决方案1】:

虽然它不适用于 Windows,但 Linux 工具 PaHole 是常见 Linux 发行版上“矮人”包的一部分,它根据 ELF 文件中的 DWARF2 调试信息提供结构和类对齐信息。

【讨论】:

    【解决方案2】:

    您可能有兴趣使用Cruncher#

    参考:原文Maciej Sinilo blog post关于Cruncher#。

    【讨论】:

      【解决方案3】:

      它嵌入到 Visual Studio 调试器中。它被称为“手表”。如果你“+”一些类实例名称,你可以看到每个项目的地址。

      【讨论】:

      • 嘿,谢谢!我不想看地址,我想看一个漂亮的图形
      • 那么不,没有这样的工具。或者你可以写“#pragma pack(push, 1)”然后给自己画一条直线。
      • 嗯。我的要求是不是无法理解?我认为这样的工具会很方便
      • 我认为该工具不会提供任何有用的东西。
      猜你喜欢
      • 1970-01-01
      • 2016-05-25
      • 2011-11-09
      • 2015-03-02
      • 2015-09-24
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 2012-11-13
      相关资源
      最近更新 更多