laanwj / dwarf_to_c

Tool to recover C headers (types, function signatures) from DWARF debug data
Other
45 stars 12 forks source link

how to surport AArch64 elf #9

Open janeny123 opened 2 years ago

janeny123 commented 2 years ago

typedef struct { char a; }E;

int main() {
E a; return 0; }

gcc -g test.c

error like this: unhandled opcode: 3c (unknown) unhandled opcode: 19 (unknown) unhandled opcode: 28 (unknown) unhandled opcode: 34 (unknown) unhandled opcode: 30 (unknown) unhandled opcode: 22 (unknown) unhandled opcode: 18 (unknown) Traceback (most recent call last): File "extract_structures_json.py", line 200, in main() File "extract_structures_json.py", line 191, in main types = parse_dwarf(args.input, args.roots) File "extract_structures_json.py", line 170, in parse_dwarf dwarf = DWARF(infile) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/init.py", line 54, in init self.frame = FrameLoader(self) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/frame.py", line 144, in init SectionLoader.init(self, dwarf, '.debug_frame', debugFrameEntry) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/stream.py", line 165, in init entry = Entry(dwarf, offset) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/frame.py", line 139, in debugFrameEntry return FrameDescriptionEntry(dwarf, offset, length, cie) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/frame.py", line 121, in init self.instructions = parse_call_frame_instructions(dwarf, instr_length) File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/dwarf/frame.py", line 57, in parse_call_frame_instructions opcode = dwarf.u08() File "/5g_build/5g_Main/valgrind_dhat/myValgrind/dwarf_to_c-master/bintools/elf/stream.py", line 59, in u08 return ord(self.io.read(1)) TypeError: ord() expected a character, but string of length 0 found