From: Simon Marchi <simon.marchi@polymtl.ca>
To: "Maciej W. Rozycki" <macro@mips.com>
Cc: gdb-patches@sourceware.org, binutils@sourceware.org,
Joel Brobecker <brobecker@adacore.com>,
Fredrik Noring <noring@nocrew.org>
Subject: Re: [PATCH] GDB PR tdep/8282: MIPS: Wire in `set disassembler-options'
Date: Tue, 05 Jun 2018 15:16:00 -0000 [thread overview]
Message-ID: <e275ed004ba8d6a582c68fdd034b86b4@polymtl.ca> (raw)
In-Reply-To: <alpine.DEB.2.00.1806042237580.6942@tp.orcam.me.uk>
Hi Maciej,
I just had a few minutes to look at it, so I looked at the API in
dis-asm.h, I have one small comment.
> Index: gdb/include/dis-asm.h
> ===================================================================
> --- gdb.orig/include/dis-asm.h 2018-06-04 16:53:56.536062303 +0100
> +++ gdb/include/dis-asm.h 2018-06-05 00:20:26.008674269 +0100
> @@ -222,16 +222,50 @@ typedef struct disassemble_info
>
> } disassemble_info;
>
> -/* This struct is used to pass information about valid disassembler
> options
> - and their descriptions from the target to the generic GDB functions
> that
> - set and display them. */
> +/* This struct is used to pass information about valid disassembler
> + option arguments from the target to the generic GDB functions
> + that set and display them. */
> +
> +typedef struct
> +{
> + /* Option argument name to use in descriptions. */
> + const char *name;
> +
> + /* Vector of acceptable option argument values, NULL-terminated. */
> + const char **values;
> +} disasm_option_arg_t;
> +
> +/* This struct is used to pass information about valid disassembler
> + options, their descriptions and arguments from the target to the
> + generic GDB functions that set and display them. Options are
> + defined by tuples of vector entries at each index. */
>
> typedef struct
> {
> + /* Vector of option names, NULL-terminated. */
> const char **name;
> +
> + /* Vector of option descriptions or NULL if none to be shown. */
> const char **description;
> +
> + /* Vector of option argument information pointers or NULL if no
> + option accepts an argument. NULL entries denote individual
> + options that accept no argument. */
> + const disasm_option_arg_t **arg;
> } disasm_options_t;
>
> +/* This struct is used to pass information about valid disassembler
> + options and arguments from the target to the generic GDB functions
> + that set and display them. */
> +
> +typedef struct
> +{
> + /* Valid disassembler options. */
> + disasm_options_t options;
> +
> + /* Vector of acceptable option arguments, NULL-terminated. */
> + disasm_option_arg_t *args;
> +} disasm_options_and_args_t;
It took me a bit of time why we have a vector of disasm_option_arg_t
here and in disasm_options_t. I finally understood that
disasm_options_and_args_t::args owns the disasm_option_arg_t objects,
and the pointers in disasm_options_t::arg point to these instances.
Maybe that could be clarified in both comments?
Do we really need a new struct, or could the "args" field be part of the
disasm_options_t struct directly?
Simon
next prev parent reply other threads:[~2018-06-05 15:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 13:46 Maciej W. Rozycki
2018-06-05 15:16 ` Simon Marchi [this message]
2018-06-05 16:39 ` Maciej W. Rozycki
2018-06-08 19:46 ` [PATCH v2] " Maciej W. Rozycki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e275ed004ba8d6a582c68fdd034b86b4@polymtl.ca \
--to=simon.marchi@polymtl.ca \
--cc=binutils@sourceware.org \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=macro@mips.com \
--cc=noring@nocrew.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox