zoukankan      html  css  js  c++  java
  • 隐藏秘技:vc输出类的layout信息

    看一个类在内存中的布局最直接的方法是使用OD之类的调试器,动态跟踪关于类成员的存取代码,但是该方法使用起来不是很方便,而且也有可能因为有的成员的访问代码不便跟踪。

    解决之道是:VC编译器(CL.EXE)提供了一个隐藏开关,用于打印编译器为类所确定的类Layout信息。

    该方法最好在命令行下使用,因为在IDE中编译会在每行头部输出额外的信息,这样会打乱原始输出。

    下面介绍使用技巧:

    首先写一个类(类文件分别为test.h和test.cpp):

    class Test {
    protected:
        int a;
        int b;
    public:
        Test(void);
        ~Test(void);
    };

    开关1:

    -d1reportSingleClassLayout

    其语法为:

    cl [x.cpp] -d1reportSingleClassLayout[类名]

    使用以下命令行命令:

    cl Test.cpp -d1reportSingleClassLayoutTest

    则cl会在控制台中输出Test类的布局信息:

    Test.cpp
    class Test      size(8):
            +---
     0      | a
     4      | b
            +---

    开关2:

    -d1reportAllClassLayout

    这个就不举例了,输出所有类的Layout

  • 相关阅读:
    线程---JDK查看线程
    如何处理js的跨域问题
    每日思考(2019/12/31)
    每日思考(2019/12/30)
    每日思考(2019/12/29)
    每日思考(2019/12/28)
    每日思考(2019/12/27)
    每日思考(2019/12/26)
    每日思考(2019/12/25)
    每日思考(2019/12/24)
  • 原文地址:https://www.cnblogs.com/bitxj/p/2722576.html
Copyright © 2011-2022 走看看