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

Joel Brobecker brobecker@adacore.com
Wed Sep 14 08:37:59 GMT 2022


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


More information about the Gdb-patches mailing list