6

转储可执行文件时,我只希望将代码段打印在标准输出上,而不是代码的偏移量和二进制形式。我无法从

man objdump

有办法吗?

4

2 回答 2

7

You can suppress the object code hex dump with

--no-show-raw-insn

If you have jumps in the code then you need the offsets to make sense of them, but if you really want to strip them, filter the code with something like:

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

Example output:

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命令行。然后,您可以改用GrepCut工具,如下所示。

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