You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Looking at the section table of earlycon.o, it does not have any data. Notice the size 0.
llvm-readelf -S earlycon.o
There are 37 section headers, starting at offset 0x422d0:
Section Headers:
[Nr] Name Type Address Off Size ES Flg Lk Inf Al
[ 0] NULL 0000000000000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS 0000000000000000 000040 000000 00 AX 0 0 1
Also
And I don't understand why text.data() can't return the assembly info stream. related file is uploaded.
I don't know what you mean by assembly info stream, but if you expect the dissassemly of the .text section, that is not possible because pyelftools is not a dissassembler. For that you should be using a separate tool like objdump.
For example
objdump -d hello.o
hello.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <main>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp,%rbp
8: c7 45 fc 05 00 00 00 movl $0x5,-0x4(%rbp)
f: 8b 45 fc mov -0x4(%rbp),%eax
12: 5d pop %rbp
13: c3 ret
Hi, I'm trying to extract assembly info from an object file, so I used ELFFile.get_section_by_name('.text') and Section.data(), like:
import sys
sys.path.insert(0, '.')
from elftools.elf.elffile import ELFFile
with open("/root/linux-master/drivers/tty/serial/earlycon.o", "rb") as f:
elf = ELFFile(f, sys.stdout)
text = elf.get_section_by_name('.text')
textInfo = text.stream.read()
print(len(textInfo))
addr = text['sh_addr']
code = text.data()
print(code)
However, the output content is:
3219
b""
And I don't understand why text.data() can't return the assembly info stream. related file is uploaded.
earlycon.zip
The text was updated successfully, but these errors were encountered: