跳到主要内容

10. 编译工具反汇编器

10.1 命令行语法​

KF32 工具链的 ELF 反汇编工具 kf32objdump支持解析标准格式的 ELF 目标文件,并将其机器指令转换为可读的汇编语言,同时可展示文件结构与符号信息。其命令行语法:

kf32objdump <option(s)> <file(s)>

其中

option(s)

操作与修饰符,指定执行什么操作以及如何执行。多个选项可以组合使用。

file(s)

指定待反汇编的目标文件文件名。

10.2 选项说明与示例​

10.2.1 选项说明​

  • -d 反汇编文件的代码段,输出汇编指令列表。
  • -D 反汇编文件中的所有段,包括数据段等非代码段的内容。
  • -S 反汇编时尽可能穿插显示源代码。提供更直观的源码级调试视图。
  • -l 在输出中包含源代码的文件名和行号信息。
  • -z 即使某个段或节区只包含零数据,也显示其内容。
  • --section=<name> 仅反汇编指定的节区(section),如 .text(代码段)、.data(已初始化数据段)、.bss(未初始化数据段)。可多次使用以指定多个节区。
  • -h 显示各段的段头信息,包括大小、VMA、LMA 与属性。
  • -t 显示符号表。
  • -r 显示重定位记录。
  • -s 以十六进制显示各段的内容。
  • --start-address=<address> / --stop-address=<address> 限定反汇编与信息打印的地址范围。

10.2.2 反汇编示例​

反汇编可执行文件的代码段:

kf32objdump -d TestElf1.elf > TestElf1.lst

反汇编文件中所有段,并显示符号表:

kf32objdump -D -t TestElf1.elf > TestElf1_all.lst