4

GCCの-fdump-class-hierarchyと同等のコンパイラオプションがMSVisualC ++にありますか?つまり、仮想関数テーブルのレイアウトを表示します。

4

2 に答える 2

8

試す

cl.exe / d1reportAllClassLayout test.cpp

出力は次のようになります。

クラスrequest_handlerAttributesize(8):
        + ---
 0 | 名前
 4 | sdl
        + ---



クラスperfmonAttributesize(8):
        + ---
 0 | 名前
 4 | 登録
        | (サイズ= 3)
        + ---

+ findstr / i class c1xx.dll> c1xx.txt
+次に、c1xx.txtを手動で検査します。

それが役立つことを願っています、ベネデット

PS:これは明らかに文書化されておらずサポートされていないスイッチです。 同様のスイッチについては、こちら
もご覧ください。

于 2010-06-17T17:17:16.467 に答える
0

文書化されたスイッチはないと確信しています。cl.exeを少し見てみると、さまざまな文字列が見つかります。そのうちのいくつかは、コマンドラインオプションに関連しているように見えます。そのうちの1つは、「Partitioning(options =%s)\ 0nul \ 0map\0ast」のように言っています。

その「ast」は抽象構文木を指している可能性があります。これは、コンパイラのASTのある種のダンプが可能であることを意味している可能性があります。他の多くのもの。さらに言えば、「ast」と「options=」はまったく関連していない可能性があります。ASTをダンプできるとしても、それは必ずしもvtableレイアウトについて何かを教えてくれるという意味ではありません。

長い話を短くするために、本当に確実に除外することを困難にするのに十分です。同時に、コンパイラがいくつかの内部構造をダンプするための文書化されていない機能を持っている可能性があるという漠然とした可能性を示唆する以上のことを行うには、はるかに多くの作業が必要になるほど十分ではありません。

于 2010-06-13T19:33:14.240 に答える