为了查看和分析目标文件、可执行文件的内部组成,我们使用了很多命令,如 objdump
、readelf
等。这些命令都是编译器提供的,如 GNU C 编译器套件,不仅包含程序编译时使用的编译器、链接器,还会提供一系列工具,这些工具被称为 GNU 工具集:binutils tools。GNU 工具集主要用来协助程序的编译、链接、调试过程,支持不同格式的文件相互转化,以及针对特定的处理器做优化等。
工具名 | 用途 |
---|---|
nm | 列出目标文件中的符号 |
size | 列出目标文件中的各个段的大小和总大小,如代码段、数据段等 |
addr2line | 将程序地址翻译成文件名和行号 |
objcopy | section 复制、删除 |
readelf | 显示有关 ELF 文件的信息 |
objdump | 显示目标文件的信息、反汇编 |