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 サイトの他の関連記事を参照してください。