4

MS Visual C++ 中是否有任何与 GCC 的 -fdump-class-hierarchy 等效的编译器选项?即显示虚函数表布局。

4

2 回答 2

8

尝试

cl.exe /d1reportAllClassLayout test.cpp

输出类似于:

类 request_handlerAttribute 大小(8):
        +---
 0 | 姓名
 4 | sdl
        +---



类 perfmonAttribute 大小(8):
        +---
 0 | 姓名
 4 | 登记
        | (大小=3)
        +---

发现做: + findstr /i class c1xx.dll > c1xx.txt
+ 然后手动检查 c1xx.txt

希望它可以帮助,贝内代托

PS:这显然是一个无证且不受支持的开关。
也可以在这里寻找类似的开关。

于 2010-06-17T17:17:16.467 回答
0

我很确定没有任何记录在案的开关。如果您稍微查看一下 cl.exe,您会发现各种字符串,其中一些似乎与命令行选项有关。其中之一是这样说的:“分区(选项 = %s)\0nul\0map\0ast”。

那个“ast”可能指的是一个抽象语法树,这可能意味着编译器的 AST 的某种转储是可能的——但我还没有真正仔细研究过它在说什么、针对什么或很多其他的东西。就此而言,“ast”和“options =”可能根本不相关。即使它可以转储 AST,也不一定意味着它可以告诉您有关 vtable 布局的任何信息。

长话短说,那里有足够的东西很难真正确定地排除。同时,除了暗示编译器可能具有一些未记录的转储某些内部结构的能力之外,还需要做更多的工作来做更多的工作。

于 2010-06-13T19:33:14.240 回答