From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Christian Biesinger <cbiesinger@google.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Remove completion_list_add_msymbol
Date: Thu, 19 Dec 2019 09:58:00 -0000 [thread overview]
Message-ID: <20191219095825.GB3865@embecosm.com> (raw)
In-Reply-To: <20191219014238.85498-1-cbiesinger@google.com>
* Christian Biesinger via gdb-patches <gdb-patches@sourceware.org> [2019-12-18 19:42:38 -0600]:
> Now that both symbol and minimal_symbol inherit from general_symbol_info,
> we can use the same function for both here.
>
> gdb/ChangeLog:
>
> 2019-12-18 Christian Biesinger <cbiesinger@google.com>
>
> * symtab.c (completion_list_add_symbol): Update.
> (completion_list_add_msymbol): Remove.
> (default_collect_symbol_completion_matches_break_on): Update.
I have a change I'm currently working on that I think will add some
additional code to completion_list_add_symbol but not
completion_list_add_msymbol, however, it might take me a week or so to
finish up the change.
I'm happy for this patch to go in, but just a warning I might end up
having to reverse this as part of my work when I get it finished.
In case you (or anyone) is interested, the problem I'm trying to fix
is something that has annoyed me for ages. Consider this C++ code:
struct object { int a; };
typedef object *object_p;
static int
get_value (object_p obj)
{
return obj->a;
}
int
main ()
{
object obj;
obj.a = 0;
int val = get_value (&obj);
return val;
}
Now in GDB:
(gdb) complete break get_va
break get_value(object*)
break get_value(object_p)
Those two completions, that's what drives me mad. I now have GDB
basically fixed up so that it only offers `break get_value(object_p)`
as a completion (though you can manually type either if you wish), but
I just have one more issue left to resolve.
Thanks,
Andrew
>
> Change-Id: Ifa01837d5f7e3438e7e6599c08baf1a2e7f086c9
> ---
> gdb/symtab.c | 22 ++++------------------
> 1 file changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/gdb/symtab.c b/gdb/symtab.c
> index 26551372cb..a76c5d304f 100644
> --- a/gdb/symtab.c
> +++ b/gdb/symtab.c
> @@ -5250,11 +5250,11 @@ completion_list_add_name (completion_tracker &tracker,
> }
> }
>
> -/* completion_list_add_name wrapper for struct symbol. */
> +/* completion_list_add_name wrapper for struct general_symbol_info. */
>
> static void
> completion_list_add_symbol (completion_tracker &tracker,
> - symbol *sym,
> + general_symbol_info *sym,
> const lookup_name_info &lookup_name,
> const char *text, const char *word)
> {
> @@ -5263,20 +5263,6 @@ completion_list_add_symbol (completion_tracker &tracker,
> lookup_name, text, word);
> }
>
> -/* completion_list_add_name wrapper for struct minimal_symbol. */
> -
> -static void
> -completion_list_add_msymbol (completion_tracker &tracker,
> - minimal_symbol *sym,
> - const lookup_name_info &lookup_name,
> - const char *text, const char *word)
> -{
> - completion_list_add_name (tracker, sym->language (),
> - sym->natural_name (),
> - lookup_name, text, word);
> -}
> -
> -
> /* ObjC: In case we are completing on a selector, look as the msymbol
> again and feed all the selectors into the mill. */
>
> @@ -5614,8 +5600,8 @@ default_collect_symbol_completion_matches_break_on
> if (completion_skip_symbol (mode, msymbol))
> continue;
>
> - completion_list_add_msymbol (tracker, msymbol, lookup_name,
> - sym_text, word);
> + completion_list_add_symbol (tracker, msymbol, lookup_name,
> + sym_text, word);
>
> completion_list_objc_symbol (tracker, msymbol, lookup_name,
> sym_text, word);
> --
> 2.24.1.735.g03f4e72817-goog
>
next prev parent reply other threads:[~2019-12-19 9:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-19 1:42 Christian Biesinger via gdb-patches
2019-12-19 9:58 ` Andrew Burgess [this message]
2019-12-19 19:35 ` Christian Biesinger via gdb-patches
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=20191219095825.GB3865@embecosm.com \
--to=andrew.burgess@embecosm.com \
--cc=cbiesinger@google.com \
--cc=gdb-patches@sourceware.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