6

実行可能ファイルをダンプするときは、コードセグメントを標準出力にのみ出力し、オフセットやバイナリ形式のコードは出力しないようにします。私はそれを達成することはできません

man objdump

方法はありますか?

4

2 に答える 2

7

次のコマンドでオブジェクトコードの16進ダンプを抑制できます。

--no-show-raw-insn

コードにジャンプがある場合は、それらを理解するためにオフセットが必要ですが、本当にそれらを削除したい場合は、次のようなコードでコードをフィルタリングします。

objdump -d --no-show-raw-insn myfile.o | perl -p -e 's/^\s+(\S+):\t//;'

出力例:

0000000000000000 <foo>:
retq
lea    0x0(%rsi),%rsi
lea    0x0(%rdi),%rdi
Disassembly of section .gnu.linkonce.t.goo:

0000000000000000 <goo>:
retq
lea    0x0(%rsi),%rsi
lea    0x0(%rdi),%rdi
于 2012-01-24T19:45:42.727 に答える
1

Peeter Jootが示したのと同じ出力を実現したいが、 Perlコマンドラインを使用しない場合。次に、以下に示すように、代わりにGrepおよびCutツールを使用できます。

objdump -d --no-show-raw-insn my_binary_file.o | grep "^ " | cut -f2,3
于 2018-07-01T10:00:14.287 に答える