arm-linux-objdump命令用于显示二进制文件的信息,也可以用来查看反汇编代码,使用格式如下:
arm-linux-objdump [-a] [-b bfdname | –target=bfdname]
[-C] [–debugging]
[-d] [-D]
[-disassemble-zeros]
[-EB | -EL | –endian={big|little}] [-f]
[-h] [-i | –info]
[-j section | –section=section]
[-l] [-m machine ] [–prefix-addresses]
[-r] [-R]
[-s | –full-contents] [-S|–source]
[–[no-]show-raw-insn] [–stabs] [-t]
[-T] [-x]
[–start-address=address] [–stop-address=address]
[–adjust-vma=offset] [–version] [–help]
objfile…
选项参数比较多,一些很少用到的参数就直接忽略好了,因为基本用不到,如果碰见了,可以去查看源码信息,以下是一些常用的选项解释:
1. -b bfdname 或–target=bfdname
指定目标码的格式,但是这个不是必须的,arm-linux-objdump能够自动识别许多格式。可以使用“arm-linux-objdump -i”命令查看支持的目标码格式列表。
2. –disassemble 或 -d
反汇编可执行段(executable sections)。
3. –disassemble-all 或 -D
与”-d”类似,反汇编所有段。
4. -EB或-EL或–endian={big|little}
指定字节序。
5. –file-headers或-f
显示文件的整体头部摘要信息。
6. –section-headers、–headers或-h
显示目标文件各个段的头部摘要信息。
7. –info或-i
显示支持的目标文件格式和CPU架构,它们在“-b”、“-m”选项中用到。
8. –section=name 或 -j name
仅显示指定section的信息。
9. –architecture=machine 或-m machine
指定反汇编目标文件时使用的架构,当待反汇编文件本身没有描述架构信息的时候(比如S-records),这个选项很有用。可以用“-i”选项列出这里能够指定的架构。
在调试程序时,常用arm-linux-objdump命令来得到汇编代码。

eg1: $arm-linux-objdump -D elf_file > dis_file

eg2: $arm-linux-objdump -D -b binary -m arm bin_file>dis_file

Logo

更多推荐