objdump,显示没有偏移

问题描述 投票:3回答:2

转储可执行文件时我只希望代码段打印标准输出。不是偏移和二进制形式的代码。我可以注意到它来自man objdump.Is有办法吗?

objdump
2个回答
4
投票

您可以使用抑制目标代码十六进制转储

--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

0
投票

如果你想实现与Peeter Joot相同的输出,但不使用Perl命令行。然后您可以使用Grep和Cut工具,如下所示。

objdump -d --no-show-raw-insn my_binary_file.o | grep "^ " | cut -f2,3
© www.soinside.com 2019 - 2024. All rights reserved.