[PATCHv2 0/3] disassembler syntax highlighting in objdump (via libopcodes)
Andrew Burgess
aburgess@redhat.com
Mon Mar 21 14:33:49 GMT 2022
This series is a serious attempt at what I discussed here:
https://sourceware.org/pipermail/binutils/2021-December/118806.html
This series changes libopcodes so that this disassemblers can supply
styling information with every piece of disassembly output, e.g. is
this a register? an address? a mnemonic? etc.
Users of the disassembler can then choose to make use of this
information to add styling to the disassembler output.
And that is what I do for objdump in this series. The styling is off
by default, but can be turned on with a new command line flag:
--disassembler-color=off|color|extended-color
I've updated GDB enough to keep it building and running after this
change, though at this point GDB doesn't make use of the new styling
information, that will come later.
All feedback would be welcome.
Changes since v1:
- After discussion with Jan I've now added additional disassembler
styles (see enum disassembler_style in includes/dis-asm.h),
- I've updated the riscv-dis.c and i386-dis.c to make use of these
new styles, and fixed a few places (mostly in riscv-dis.c) where
the wrong style was being used,
- I've gone through my changes in riscv-dis.c and i386-dis.c and
made sure that lines are all under 80 characters,
- I've extended binutils/objdump.c to handle the new styles. For
now I've not given these styles separate colours, but used
existing grouping similar styles together, e.g. anything that is a
number (immediate, address, address offset) all gets the same
colour.
- The crash that Nelson reported from riscv-dis.c is fixed.
Andrew Burgess (3):
objdump/opcodes: add syntax highlighting to disassembler output
opcodes/riscv: implement style support in the disassembler
opcodes/i386: partially implement disassembler style support
binutils/NEWS | 4 +
binutils/doc/binutils.texi | 11 ++
binutils/objdump.c | 249 ++++++++++++++++++++++++++++++++-----
gdb/disasm.c | 34 ++++-
gdb/disasm.h | 7 ++
include/dis-asm.h | 88 ++++++++++++-
opcodes/dis-init.c | 5 +-
opcodes/disassemble.c | 23 +++-
opcodes/i386-dis.c | 63 ++++++----
opcodes/riscv-dis.c | 193 +++++++++++++++++-----------
10 files changed, 541 insertions(+), 136 deletions(-)
--
2.25.4
More information about the Binutils
mailing list