在转储可执行文件时,我只希望在标准输出上打印代码段,而不是偏移量和代码的二进制形式。我无法做到这一点
man objdump有办法吗?
发布于 2012-01-24 19:45:42
可以通过以下方法来抑制对象代码十六进制转储
--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发布于 2018-07-01 10:00:14
如果您想实现与、Peeter、展示的输出相同的结果,但是不使用Perl命令行。然后可以使用Grep和Cut工具,如下所示。
objdump -d --no-show-raw-insn my_binary_file.o | grep "^ " | cut -f2,3https://stackoverflow.com/questions/8541906
复制相似问题