如何只将一个文件或一个elf文件的函数转换为汇编?

时间:2018-01-20 05:37:32

标签: linux-kernel elf disassembly

我有一个非常大的代码库(内核)的elf文件。我想将它转换为汇编代码。我有一个函数的基址和指令的偏移量。使用这些信息,我想得到具体的指示。我用过" objdump -b binary -m i386 -D file.elf"从elf文件获取汇编代码,但它生成4GB的数据。我也提到了这个Can I give objdump an address and have it disassemble the containing function?,但它也不适用于我。

2 个答案:

答案 0 :(得分:0)

您可以使用 - 起始地址 - 停止地址选项限制objdump输出。

对于仅针对单个函数的进程代码,这些选项的值可以从readelf -s输出中获取,该输出包含该部分中函数的起始地址和函数的大小,以及来自{{输出,包含带有函数的部分的地址:

readelf -S

答案 1 :(得分:0)

  

我想将其转换为汇编代码。

gdb -q ./elf_file
(gdb) set height 0    # prevent pagination
(gdb) set logging on  # output will be mirrored in gdb.txt
(gdb) disassemble 0xffff000008081890 0xffff000008081bf5
(gdb) quit

享受!