objdump 不适用于 ELF 64 位 x86-64,
objdump not working on ELF 64-bit x86-64,
我有一个来自 Tiny C 编译器的 64 位 ELF 目标代码。我无法让 gobjdump 显示反汇编代码。我正在使用 OS X 10.10.5.
$ file hello.o
hello.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ gobjdump -d hello.o
gobjdump: hello.o: File format not recognized
$ greadelf -h hello.o
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 228 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 64 (bytes)
Number of section headers: 7
Section header string table index: 6
额外信息:
$uname -a
Darwin Nawals-MacBook-Air.local 14.5.0 Darwin Kernel Version 14.5.0:
Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64
$ gobjdump -i
BFD header file version (GNU Binutils) 2.24
mach-o-x86-64
mach-o-i386
mach-o-le
mach-o-be
mach-o-fat
pef
pef-xlib
sym
srec
symbolsrec
verilog
tekhex
binary
ihex
我不明白为什么堆栈溢出认为我的问题主要是代码 - 我想提供尽可能多的信息来帮助人们回答。我不认为 pastebin 等人。在这里受到鼓励。
根据手册页,可用的输出格式如下:
-Wl,--oformat,fmt
Use fmt as output format. The supported output formats are:
"elf32-i386"
ELF output format (default)
"binary"
Binary image (only for executable output)
"coff"
COFF output format (only for executable output for TMS320C67xx
target)
因此,尽管网上声称支持 x86-64,但最新版本不支持目标文件的 x86-64 输出
我有一个来自 Tiny C 编译器的 64 位 ELF 目标代码。我无法让 gobjdump 显示反汇编代码。我正在使用 OS X 10.10.5.
$ file hello.o
hello.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ gobjdump -d hello.o
gobjdump: hello.o: File format not recognized
$ greadelf -h hello.o
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 228 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 64 (bytes)
Number of section headers: 7
Section header string table index: 6
额外信息:
$uname -a
Darwin Nawals-MacBook-Air.local 14.5.0 Darwin Kernel Version 14.5.0:
Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64
$ gobjdump -i
BFD header file version (GNU Binutils) 2.24
mach-o-x86-64
mach-o-i386
mach-o-le
mach-o-be
mach-o-fat
pef
pef-xlib
sym
srec
symbolsrec
verilog
tekhex
binary
ihex
我不明白为什么堆栈溢出认为我的问题主要是代码 - 我想提供尽可能多的信息来帮助人们回答。我不认为 pastebin 等人。在这里受到鼓励。
根据手册页,可用的输出格式如下:
-Wl,--oformat,fmt
Use fmt as output format. The supported output formats are:
"elf32-i386"
ELF output format (default)
"binary"
Binary image (only for executable output)
"coff"
COFF output format (only for executable output for TMS320C67xx
target)
因此,尽管网上声称支持 x86-64,但最新版本不支持目标文件的 x86-64 输出