GDB and opcodes
Andrew Cagney
ac131313@redhat.com
Wed Sep 3 23:40:00 GMT 2003
Some notes from my recent cleanup and the comments it received:
- I suspect that "moving forward" a vfprintf, instead of fprintf,
signatured output function would be better - easier to wrap it up in
various ways
- what are the memory allocation rules for the disassembler info struct?
GDB could easily be leaking memory.
- what about multiple disassemblers?
GDB with multi-arch is going to want multiple disassemblers active
- access to the disassembler option table?
(has come up before) GDB would like to add a more generic "set
disassembler <tab>" command so that there is a command that roughly
corresponds to the objdump disassembler option.
- access to the assembler?
GDB would like to support a mechanism like:
(gdb) assemble 0x1000
> move r1, r2
> store r2, foo
> end
(gdb)
- some assemblers assume a BFD (m68hc11 comes to mind)
GDB may not have a BFD handy :-/ GDB can find itself talking to a random
architectured target vis:
$ gdb
(gdb) set architecture romp
(gdb) target remote romp:123
(gdb) x/i $pc
- access to address -> arch/mach map?
There's a bfd -> disassembler map, but underneath that there must be
some kind of ADDRESS -> arch/mach map. GDB would like access to it.
Firstly so that it can better handle disassembly where the machine
switches mode midstream (as in sh/sh64, mips/mips16, ia64/ia32,
ia32/amd64, ...) (GDB may not even have a BFD) and secondly so that it
can know things like the correct breakpoint to insert. Since
OPCODES/BFD must already be doing this, gdb would like to share :-)
(now what have I forgotten?)
enjoy,
Andrew
More information about the Binutils
mailing list