web-dev-qa-db-ja.com

C / C ++プログラムのgcc(任意のフレーバー)コンパイラーによって生成されたアセンブリコードを確認するにはどうすればよいですか?

私は多くの乗算とポインタ演算を最適化しようとしています、そして最適化フラグを入れたときにコンパイラが下で何をするかを見たいです。

-編集-

特定の関数またはコードブロックに制限する方法は?

-Edit_2-

Gccに冗長性の低いアセンブリコードを生成させる方法は?

37
vehomzzz

コマンドラインに-Sスイッチを追加します。

編集:-oスイッチで指定したファイルにアセンブリを配置することを忘れないでください。

39
P Shved

特定の関数またはコードブロックに制限する方法は?

その関数を別のソースファイルに配置します(その1つのソースファイルに別のコマンドラインパラメーターを使用します)。

9
ChrisW

gdbのようなデバッガーでそのプログラムを実行し、逆アセンブリビューを使用することもできます。 gdbでは、コマンドdisass/m現在の場所でCコードと混合されたアセンブリを表示します。

5
Chris

Visual Studioデバッガーのブレークポイントでプログラムを停止し、「アセンブリの表示」を実行し、一度に1つの命令を実行することもできます。

1
sean riley