[PATCH 0/2] RISC-V: Fix disassembly for dynamic libraries
Marek Pikuła via Cgen <[email protected]> Fri, 13 Dec 2024 18:25:42 +0100
| Newsgroups | gmane.comp.tools.cgen.devel,gmane.comp.gnu.binutils,gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
This patchset improves experience for code disassembly in GDB for RISC-V, when interacting with dynamically linked libraries. For example, a binary might be built for a generic `rv64gc` target, but a library that the binary loads might be built for `rv64gcv`. In that case, when only `abfd` provides information to disassembler, the vector instructions don't get disassembled correctly (and are shown as generic `.insn`). With this patchset, the disassembler checks which object file is in scope. Thus, it adjusts the output to the ISA subset present in `Tag_RISCV_arch` from the object file in the current scope. While this change is directed mainly towards GDB, its main focus is libopcodes, thus this patchset is sent both to GDB and binutils mailing lists. Marek Pikuła (2): opcodes: Add bfd handles to disassemble_info RISC-V: Use obfd for disassembly instead of abfd binutils/objdump.c | 3 +- gdb/arch-utils.c | 2 +- gdb/disasm.c | 14 +++++++++ gprofng/libcollector/unwind.c | 9 ++++++ gprofng/src/Disasm.cc | 12 ++++++-- include/dis-asm.h | 20 +++++++------ opcodes/arc-dis.c | 31 ++++++++------------ opcodes/cris-dis.c | 9 +++++- opcodes/csky-dis.c | 54 +++++++++++++++++------------------ opcodes/dis-init.c | 11 ++++++- opcodes/disassemble.c | 13 ++++----- opcodes/disassemble.h | 7 ++--- opcodes/riscv-dis.c | 49 ++++++++++++++----------------- opcodes/rl78-dis.c | 12 ++++++-- sim/arm/wrapper.c | 3 +- sim/common/sim-trace.c | 4 +-- sim/cris/sim-if.c | 9 +++--- sim/m32c/trace.c | 1 + sim/rl78/trace.c | 3 +- sim/rx/trace.c | 1 + 20 files changed, 156 insertions(+), 111 deletions(-) base-commit: 7336a8977d81b7b8c00f2e8ccb8a084afb33b19a -- 2.47.0