This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, RFC] Add support for choosing disassembler cpu in GDB for POWER.


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]