[llvm-dev] Symbolizing relocations in disassembly

Skip to first unread message

Nikita Ermoshkin via llvm-dev

Jan 28, 2022, 4:41:24 PM1/28/22
to LLVM Dev
Hi LLVM devs,

In my experimental backend, I’d like to symbolize the disassembled ELF and object files generated by the backend, so that labels/function names are printed instead of just memory addresses. When using objdump. The simplest implementation I’ve found is the AMDGPU symbolizer in the Disassembler, which I mimicked. This works fine only in very specific cases, where the address in the operand exists in the section’s symbol table. However, if the symbol to reference is in another section, or if the operand value is just 0 with a fix-up/relocation, it obviously doesn’t give correct results. 

So the question: is there a more robust way to get access to all the symbols and relocation data in the target Disassembler? I haven’t fully dug through how x86 does it but it seems really complicated, and my much simpler backend probably doesn’t need that level of complexity. 

David Blaikie via llvm-dev

Jan 28, 2022, 4:55:02 PM1/28/22
to Nikita Ermoshkin, LLVM Dev
Not sure I'm entirely following - llvm-symbolizer can symbolize addresses in object files, I think, including applying/interacting with relocations - I don't think it involves any use of the Disassembler.

LLVM Developers mailing list
Reply all
Reply to author
0 new messages