Re: [PATCH v5 08/15] gdb, ada: collect standard exceptions in all objfiles

Joel Brobecker via Gdb-patches
2022-09-14T08:38:24Z

Hi Markus,

> would you be able to review this patch?

I think Tom already reviewed this patch (back in July), and he said
it looked fine to him. Here is the link to the email, in case I am
mistaken:

https://sourceware.org/pipermail/gdb-patches/2022-July/190855.html

> >-----Original Message-----
> >From: Metzger, Markus T <markus.t.metzger@intel.com>
> >Sent: Montag, 18. Juli 2022 07:36
> >To: brobecker@adacore.com
> >Cc: gdb-patches@sourceware.org; Kevin Buettner <kevinb@redhat.com>
> >Subject: RE: [PATCH v5 08/15] gdb, ada: collect standard exceptions in all objfiles
> >
> >Hello Joel,
> >
> >Would you be able to review this Ada-related patch?
> >
> >thanks,
> >markus.
> >
> >>-----Original Message-----
> >>From: Metzger, Markus T <markus.t.metzger@intel.com>
> >>Sent: Donnerstag, 2. Juni 2022 15:25
> >>To: gdb-patches@sourceware.org
> >>Subject: [PATCH v5 08/15] gdb, ada: collect standard exceptions in all objfiles
> >>
> >>When searching for standard exceptions for Ada, we lookup the minimal
> >>symbol of each exception. With linker namespaces there can be multiple
> >>instances in different namespaces. Collect them all.
> >>---
> >> gdb/ada-lang.c | 30 +++++++++++++++++++++++-------
> >> 1 file changed, 23 insertions(+), 7 deletions(-)
> >>
> >>diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
> >>index 6ab01fd27d4..2b251693b72 100644
> >>--- a/gdb/ada-lang.c
> >>+++ b/gdb/ada-lang.c
> >>@@ -13016,15 +13016,29 @@ ada_add_standard_exceptions (compiled_regex
> >>*preg,
> >> {
> >> if (preg == NULL || preg->exec (name, 0, NULL, 0) == 0)
> >> {
> >>- struct bound_minimal_symbol msymbol
> >>- = ada_lookup_simple_minsym (name);
> >>+ symbol_name_match_type match_type = name_match_type_from_name
> >>(name);
> >>+ lookup_name_info lookup_name (name, match_type);
> >>
> >>- if (msymbol.minsym != NULL)
> >>- {
> >>- struct ada_exc_info info
> >>- = {name, msymbol.value_address ()};
> >>+ symbol_name_matcher_ftype *match_name
> >>+ = ada_get_symbol_name_matcher (lookup_name);
> >>
> >>- exceptions->push_back (info);
> >>+ /* Iterate over all objfiles irrespective of scope or linker
> >>+ namespaces so we get all exceptions anywhere in the
> >>+ progspace. */
> >>+ for (objfile *objfile : current_program_space->objfiles ())
> >>+ {
> >>+ for (minimal_symbol *msymbol : objfile->msymbols ())
> >>+ {
> >>+ if (match_name (msymbol->linkage_name (), lookup_name,
> >>+ nullptr)
> >>+ && msymbol->type () != mst_solib_trampoline)
> >>+ {
> >>+ ada_exc_info info
> >>+ = {name, msymbol->value_address (objfile)};
> >>+
> >>+ exceptions->push_back (info);
> >>+ }
> >>+ }
> >> }
> >> }
> >> }
> >>@@ -13122,6 +13136,8 @@ ada_add_global_exceptions (compiled_regex *preg,
> >> SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
> >> VARIABLES_DOMAIN);
> >>
> >>+ /* Iterate over all objfiles irrespective of scope or linker namespaces
> >>+ so we get all exceptions anywhere in the progspace. */
> >> for (objfile *objfile : current_program_space->objfiles ())
> >> {
> >> for (compunit_symtab *s : objfile->compunits ())
> >>--
> >>2.35.3
>
> Intel Deutschland GmbH
> Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
> Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
> Chairperson of the Supervisory Board: Nicole Lau
> Registered Office: Munich
> Commercial Register: Amtsgericht Muenchen HRB 186928
>

--
Joel