2016-11-24 10 views
0

1つのカーネルモジュールを作成しました。アセンブリコード、つまり*.sファイルを生成します。カーネルモジュール(* .c)からアセンブリコード(* .s)ファイルを生成するには?

これまでobjdumpを使用してオブジェクトファイルから.sファイルを生成できましたが、適切なアセンブリコードが提供されていません。誰もがこれで私を助けてもらえますか?

+5

'-S'を使って試したことがありますか? –

答えて

1

あなただけ-S

を追加し、あなたが最適化されたassmblyコードを表示する場合にも、私は、-O0オプション(あなたがそれを必要とする場合)で任意の最適化を無効にすることをお勧め、アセンブリコードを生成するための-Sオプションを使用する必要がありますgccのオプションに関する詳細find here

+1

なぜasmを見たいかによって異なります。コンパイラがうまくいったかどうかを知りたければ、 '-O3'を使うべきです(実際には、' .o'を作るのに使うオプションと全く同じオプションを使いますが、 '-cの代わりに' -S'を使います')。最適化されていないasm出力を見ると、ほとんど役に立ちません。 [gcc出力からノイズを除去する方法](http://stackoverflow.com/questions/38552116/how-to-remove-noise-from-gcc-clang-assembly-output)も参照してください。私は 'gcc -O3 -masm = intel -fverbose-asm -S -o- |が好きです。少ない。カーネルコードでは、AT&Tを想定したインラインasmのために、おそらく '-masm = intel'を避ける必要があります。 –

関連する問題