我在Ubuntu中遇到了这个错误,ARM 64(aarch 64)架构的Objdump不想运行。以下命令的错误消息«objdump -d filename»:
filename: file format elf64-little objdump: can’t disassemble for architecture UNKNOWN!
我不确定objdump是否运行在Aarch 64架构上。有人有什么想法吗?还是有其他命令来反汇编ETF文件?
o0lyfsai1#
GNU Binutils只能处理在构建时选择的一种架构。在AArch 64 Linux系统上,系统objdump命令将被配置为aarch 64-linux-gnu对象文件,而这不是。如果你安装了x86-64-linux-gnu-objdump交叉工具链,你可以使用它。但是你可能已经安装了一个反汇编器,可以处理各种架构:
objdump
x86-64-linux-gnu-objdump
llvm-objdump -d
LLVM可以(并且确实)将对多个目标的支持构建到工具的一个构建中。llvm-objdump将简单地自动检测体系结构并进行反汇编。(clang编译任何目标被配置为使用默认值,通常是本机目标。但是clang -c -target mips可以工作,例如,至少对于那些不需要特定于MIPS的头文件或链接库的东西。
llvm-objdump
clang
clang -c -target mips
1条答案
按热度按时间o0lyfsai1#
GNU Binutils只能处理在构建时选择的一种架构。在AArch 64 Linux系统上,系统
objdump
命令将被配置为aarch 64-linux-gnu对象文件,而这不是。如果你安装了x86-64-linux-gnu-objdump
交叉工具链,你可以使用它。但是你可能已经安装了一个反汇编器,可以处理各种架构:
llvm-objdump -d
LLVM可以(并且确实)将对多个目标的支持构建到工具的一个构建中。
llvm-objdump
将简单地自动检测体系结构并进行反汇编。(clang
编译任何目标被配置为使用默认值,通常是本机目标。但是clang -c -target mips
可以工作,例如,至少对于那些不需要特定于MIPS的头文件或链接库的东西。