2012-01-22 2 views
8

クラスに少なくとも1つの仮想関数が含まれている場合、クラスにはVTABLEがあることを理解します。私はVTABLEの内容を見たいと思います。それを表示する方法はありますか?GCCを通してC++クラスのVTABLEを表示する方法は?

具体的には、gccには、クラスのVTABLEを表示するオプションがありますか?

答えて

16

入力ファイルがlayout.cppの場合、gcc -fdump-class-hierarchy layout.cppというコマンドはファイルlayout.cpp.classを生成します。このファイルにはVTABLEと他の有用な情報が表示されます。

+0

gccを使うべきか、g ++をC++ – user2760375

+0

g ++に使うべきですか?g ++ではなくg ++です。 – sagar

2

これは実際にはvテーブル(これはコンパイラに依存し、標準では必須ではない)を想定すると、デバッガで検査することができます。

なぜあなたはそれをしますか?好奇心以外のものに頼っているのであれば、ではありません。

+0

はい、好奇心ではありません。 vtableを表示するgccにオプションがありますか? –

+0

@LinuxPenseurあなたはgdbを意味する必要があります。知りません。私は、Visual Studioでクラスを検査しているときに、それが一度表示されていることを知っていました。私はgccがどのシンボルに付いているか、あなたがそのシンボルを見つけることができるかどうかによって異なります。 – littleadv

関連する問題