VS查看类的内存布局
Posted axin-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS查看类的内存布局相关的知识,希望对你有一定的参考价值。
VS查看类的内存布局_axin
本文是对前人文章的一些总结和新的理解,原文链接
MSVC有个隐藏的“/d1”开关,通过这个开关可以查看项目中类的内存布局情况。
1、查看单个类的内存布局:
修改项目属性(右键 项目→属性→C/C++→命令行),在 其它选项 中添加” /d1 reportSingleClassLayoutCC ”开关,表示需要查看类CC的内存布局。
特别注意 “reportSingleClassLayout” 和 “CC” 之间 没有空格!
2、查看所有类的内存布局:
“ /d1 reportAllClassLayout ” 是查看所有类的布局,这样编译后会在输出界面上输出很多类的布局
3、查看某些类的内存布局:
类名CC的匹配规则如下:
/d1 reportSingleClassLayoutXX,"XX"是填入你想查看的类的名字,编译后会在输出界面上输出类的布局,任何匹配它的类名都会被输出。比如想看class A,你输入了/d1reportSingleClassLayoutA,但是你会发现会编译器输出很多无关的类,如struct ABC、Class inAttribute Class dbA…因为它们的类名都包含有A这个字母。
可以利用这个匹配特性达到查看某些类的功能,例如:
对想要查看的类名特殊命名。
比如:所有想查看内存布局的类名均以 “ Class_1_ ” 结尾
即可使用“ /d1 reportSingleClassLayoutClass_1_ ”查看特定类的内存布局
以上是关于VS查看类的内存布局的主要内容,如果未能解决你的问题,请参考以下文章