public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: Andrew Burgess <andrew.burgess@embecosm.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH 1/4] gdb: add new function quick_symbol_functions::has_unexpanded_symbols
Date: Thu, 13 May 2021 10:38:15 -0400	[thread overview]
Message-ID: <31028587-9d73-da88-62de-f6d7f82c27df@polymtl.ca> (raw)
In-Reply-To: <87ca93b987e114d57bb549ae72d6635148341e22.1619456691.git.andrew.burgess@embecosm.com>

> diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
> index f06ceff41c2..096053e75e9 100644
> --- a/gdb/quick-symbol.h
> +++ b/gdb/quick-symbol.h
> @@ -86,6 +86,12 @@ struct quick_symbol_functions
>       available.  */
>    virtual bool has_symbols (struct objfile *objfile) = 0;
>  
> +  /* Return true if OBJFILE has any unexpanded symbols.  A return value of
> +     false indicates there are no unexpanded symbols, this might mean that
> +     all of the symbols have been expanded (full debug has been read in),
> +     or it might been that OBJFILE has no debug information.  */
> +  virtual bool has_unexpanded_symbols (struct objfile *objfile) = 0;

Naming nit: I would maybe suggest to name this "has_unexpanded_symtabs",
since the unit of expansion is a symtab, not a symbol.  I would
understand it better this way.

> diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
> index b839194e2f7..cfc3bed9222 100644
> --- a/gdb/symfile-debug.c
> +++ b/gdb/symfile-debug.c
> @@ -100,6 +100,19 @@ objfile::has_partial_symbols ()
>    return retval;
>  }
>  
> +/* See objfiles.h.  */
> +bool
> +objfile::has_unexpanded_symbols ()
> +{
> +  for (const auto &iter : qf)
> +    {
> +      if (iter->has_unexpanded_symbols (this))
> +	return true;
> +    }
> +
> +  return false;
> +}

I find it odd that this is implemented in this file.  I thought that
symfile-debug.c was just for wrappers that add debug logging.  Maybe
that's how it was back then and it just evolved from there, when
objfiles gained the capability to have multiple symbol providers.

So I think it's fine to add this here, because it's in line with what's
already there, but I would suggest adding the debug logs like there is
in the other functions.

Otherwise, LGTM.

Simon

  reply	other threads:[~2021-05-13 14:38 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-26 17:06 [PATCH 0/4] New option for 'info sources', also better MI support Andrew Burgess
2021-04-26 17:07 ` [PATCH 1/4] gdb: add new function quick_symbol_functions::has_unexpanded_symbols Andrew Burgess
2021-05-13 14:38   ` Simon Marchi [this message]
2021-05-13 17:29     ` Tom Tromey
2021-05-13 14:46   ` Simon Marchi
2021-04-26 17:07 ` [PATCH 2/4] gdb: make struct output_source_filename_data more C++ like Andrew Burgess
2021-05-13 14:58   ` Simon Marchi
2021-04-26 17:07 ` [PATCH 3/4] gdb: add new -group-by-binary flag to info sources command Andrew Burgess
2021-04-26 17:34   ` Eli Zaretskii
2021-05-13 15:05   ` Simon Marchi
2021-05-15  8:45     ` Andrew Burgess
2021-05-15 13:19       ` Simon Marchi
2021-04-26 17:07 ` [PATCH 4/4] gdb/mi: extend -file-list-exec-source-files command Andrew Burgess
2021-04-26 17:39   ` Eli Zaretskii
2021-05-13 15:47   ` Simon Marchi
2021-05-13 10:34 ` [PATCH 0/4] New option for 'info sources', also better MI support Andrew Burgess
2021-05-19 11:12 ` [PATCHv2 0/5] "info sources" - group by objfile Andrew Burgess
2021-05-19 11:12   ` [PATCHv2 1/5] gdb: add new function quick_symbol_functions::has_unexpanded_symbols Andrew Burgess
2021-05-19 11:12   ` [PATCHv2 2/5] gdb: make struct output_source_filename_data more C++ like Andrew Burgess
2021-05-19 11:12   ` [PATCHv2 3/5] gdb/mi: add regexp filtering to -file-list-exec-source-files Andrew Burgess
2021-05-19 11:51     ` Eli Zaretskii
2021-05-19 11:12   ` [PATCHv2 4/5] gdb/mi: add new --group-by-objfile flag for -file-list-exec-source-files Andrew Burgess
2021-05-19 11:44     ` Eli Zaretskii
2021-05-19 11:12   ` [PATCHv2 5/5] gdb: change info sources to group results by objfile Andrew Burgess
2021-05-19 11:53     ` Eli Zaretskii
2021-06-03 13:08     ` Simon Marchi
2021-06-03  9:27   ` [PATCHv2 0/5] "info sources" - group " Andrew Burgess
2021-06-03 13:15     ` Simon Marchi
2021-06-07 18:32   ` [PATCHv3 " Andrew Burgess
2021-06-07 18:32     ` [PATCHv3 1/5] gdb: add new function quick_symbol_functions::has_unexpanded_symbols Andrew Burgess
2021-06-07 18:32     ` [PATCHv3 2/5] gdb: make struct output_source_filename_data more C++ like Andrew Burgess
2021-07-05 12:31       ` Tom de Vries
2021-07-26 13:21         ` Andrew Burgess
2021-06-07 18:32     ` [PATCHv3 3/5] gdb/mi: add regexp filtering to -file-list-exec-source-files Andrew Burgess
2021-06-07 18:32     ` [PATCHv3 4/5] gdb/mi: add new --group-by-objfile flag for -file-list-exec-source-files Andrew Burgess
2021-06-07 18:32     ` [PATCHv3 5/5] gdb: change info sources to group results by objfile Andrew Burgess
2021-06-21 12:02     ` PING! Re: [PATCHv3 0/5] "info sources" - group " Andrew Burgess
2021-06-25 20:08       ` Andrew Burgess

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=31028587-9d73-da88-62de-f6d7f82c27df@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=andrew.burgess@embecosm.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).