[PATCH, RFC] Add support for choosing disassembler cpu in GDB for POWER.
Peter Bergner
bergner@vnet.ibm.com
Tue Oct 11 18:49:00 GMT 2016
On 10/10/16 7:08 PM, Pedro Alves wrote:
> A command that works for all architectures, like your original
> "set disassembler-cpu" seemingly would be (ignoring implementation
> details). Maybe "set disassembler-cpu" could be an alias for
> "set $current_arch disassembler-cpu". GDB would then only need to store
> a disassemble option string for each possible arch, and the alias would just
> need to map the current arch's cpu to the right option string variable.
It doesn't look like set_disassembler_cpu() is passed the gdbarch, so
is there some global variable that it could use to determine what the
current arch is? That said, even if I do have it, wouldn't we need
to store the set/show commands in the gdbarch so that they can be
called?
> All the information to build this should be in opcodes, I think. Even
> for "help show disassembler-cpu", it should be possible for gdb to ask
> opcodes to print a description of each possible option,
> since "objdump --help" does it. Bonus points for hooking that to
> a completer for "set disassembler-cpu <tab>". :-)
The objdump --help output comes from opcodes/ppc-dis.c's
print_ppc_disassembler_options(FILE *stream). I actually tried
to call that from show_disassembler_cpu(), but the "file" pointer
it's passed is of type "struct ui_file *file" which looks to be
a black box, so I'm not sure how I can extract a "FILE *" pointer
out of that.
I don't know how to set up a completer and I don't see one.
Do you know of an example in the code I could look at/copy?
> BTW, AFAICS, objdump's -M isn't really only about "cpu".
> "objdump --help" on an --enable-targets=all build of binutils
> shows -M options that are not cpu options. "set disassembler-options"
> would probably be a better name for this.
I'm fine going with whatever option name people prefer. If you want
"disassembler-options" instead of just "disassembler", ok, but shouldn't
ARM be renamed then as well if it uses this mechanism?
Peter
More information about the Binutils
mailing list