ホームページ > バックエンド開発 > C++ > GCC と objdump を使用して C/C コードからアセンブラ出力を取得するにはどうすればよいですか?

GCC と objdump を使用して C/C コードからアセンブラ出力を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-24 05:21:20
オリジナル
323 人が閲覧しました

How can I get assembler output from my C/C   code using GCC and objdump?

GCC の C/C ソースからアセンブラ出力を取得する

コンパイル プロセスを分析するには、出力されたアセンブリ コードを抽出することが不可欠です。効果的な方法の 1 つは、GCC (または G ) で -S オプションを使用することです。

-S オプションの使用

-S を指定すると、プリプロセッサはソース ファイルの初期コンパイルを実行しますが、アセンブラを呼び出す前に停止します。これにより、アセンブリを通過する前にコードを検査できます。読みやすさを向上させるには、-fverbose-asm を使用します。

gcc -S helloworld.c
ログイン後にコピー

出力ファイルの名前は、デフォルトでは helloworld.s になります。これを変更するには、-o オプションを使用します。

gcc -S -o my_asm_output.s helloworld.c
ログイン後にコピー

既存のオブジェクト ファイルの分析

オブジェクト ファイルしかない場合は、- を付けて objdump を使用できます。 -disassemble (-d) オプション。

objdump -S --disassemble helloworld > helloworld.dump
ログイン後にコピー

詳細情報については、使用を検討してください。 -rwC (シンボルの再配置と名前のデマングリング用)、-Mintel (x86 での Intel 構文用)、および -r (リンクされていないオブジェクトからの参照を含めるため)。

objdump -drwC -Mintel -S foo.o | less
ログイン後にコピー

これらのメソッドは、コンパイルに関する貴重な洞察を提供します。プロセスを実行して、C/C プログラムのアセンブリ コードを分析できるようにします。

以上がGCC と objdump を使用して C/C コードからアセンブラ出力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート