This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa+5.3] bug in my earlier DW_TAG_namespace patch
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Andrew Cagney <ac131313 at redhat dot com>
- Cc: Jim Blandy <jimb at redhat dot com>, Elena Zannoni <ezannoni at redhat dot com>, David Carlton <carlton at math dot stanford dot edu>, gdb-patches at sources dot redhat dot com
- Date: Mon, 25 Nov 2002 16:33:09 -0500
- Subject: Re: [rfa+5.3] bug in my earlier DW_TAG_namespace patch
- References: <ro1fztuh2kx.fsf@jackfruit.Stanford.EDU><3DE29434.2090205@redhat.com>
Andrew Cagney writes:
> Hello,
>
> David recommended this for:
>
> ####### #####
> # # #
> # #
> ###### #####
> # ### #
> # # ### # #
> ##### ### ####
>
> any comments?
>
I knew I was forgetting something.
> I just noticed that my earlier patch that allowed GDB to accept
> DW_TAG_namespace entries had a bug in it. The function
> scan_partial_symbols in dwarf2read.c only descends into DIEs that have
> a name; but anonymous namespaces can lead to DIEs without names which
> have interesting children (where by "interesting" I mean that we want
> to add partial symbols corresponding to them). This could result in
> us missing some partial symbols.
>
> I've enclosed a patch below: for obvious reasons, it should go into
> GDB 5.3 as well. I've run GDB on a copy of GDB with this patch
> applied and followed the control flow when GDB runs into various sorts
> of DW_TAG_namespace entries, and the control flow seems to behave like
> I expect it to. (This is, admittedly, after only a limited amount of
> testing.) I'm in the middle of running the testsuite (I'll run it
> twice, once on a compiler that doesn't generate DW_TAG_namespace
> entries and once on a compiler that does); assuming that there are no
> new regressions, is the patch okay?
Were there regressions?
If not, go ahead.
Elena
>
> David Carlton
> carlton@math.stanford.edu
>
> 2002-11-21 David Carlton <carlton@math.stanford.edu>
>
> * dwarf2read.c (scan_partial_symbols): Descend into namespace
> pdi's with no name.
>
> Index: dwarf2read.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/dwarf2read.c,v
> retrieving revision 1.75
> diff -u -p -r1.75 dwarf2read.c
> --- dwarf2read.c 11 Nov 2002 00:55:34 -0000 1.75
> +++ dwarf2read.c 22 Nov 2002 00:11:49 -0000
> @@ -1359,7 +1359,9 @@ scan_partial_symbols (char *info_ptr, st
> {
> info_ptr = read_partial_die (&pdi, abfd, info_ptr, cu_header);
>
> - if (pdi.name)
> + /* Anonymous namespaces have no name but are interesting. */
> +
> + if (pdi.name != NULL || pdi.tag == DW_TAG_namespace)
> {
> switch (pdi.tag)
> {
>