[Dwarf-discuss] Ranges for DW_TAG_namespace

rifkin.jer@gmail.com rifkin.jer@gmail.com
Fri Sep 15 04:50:49 GMT 2023


Hello,

Thank you both so much for the quick replies. Thank you for clarifying that
the expectation is to unconditionally traverse DIEs within a CU when looking
for a subprogram. I am currently working with some executables which have
large namespace sections that would be nice to skip over completely while
querying symbols. Preprocessing this information may be the next best thing,
but I will have to benchmark to see if it is beneficial. Despite namespaces
not being program entities I had incorrectly assumed there would be some
encoding of this information. The space vs time tradeoff is perhaps not
entirely clear though.

 

Thank you again,

Jeremy

 

From: Greg Clayton <clayborg@gmail.com> 
Sent: Thursday, September 14, 2023 9:22 PM
To: rifkin.jer@gmail.com
Cc: DWARF Discuss <dwarf-discuss@lists.dwarfstd.org>
Subject: Re: [Dwarf-discuss] Ranges for DW_TAG_namespace

 

When searching for addresses we first see if the compile unit's DW_AT_ranges
(or low/high pc) attribute contains the address we are looking for. Any CU
that doesn't contain the address doesn't need to have its child DIEs parsed,
just the top level DW_TAG_compile_unit DIE. Then we iterate over all the
DIEs always descending into all of the children looking for
DW_TAG_subprogram entries that contain the address we are looking for. So if
we see a DW_TAG_namespace we just call recursively to parse its children. 





From: Robinson, Paul paul.robinson@sony.com <mailto:paul.robinson@sony.com>

Sent: Thursday, September 14, 2023 7:51 PM
To: rifkin.jer@gmail.com <mailto:rifkin.jer@gmail.com> ;
dwarf-discuss@lists.dwarfstd.org <mailto:dwarf-discuss@lists.dwarfstd.org> 
Subject: RE: [Dwarf-discuss] Ranges for DW_TAG_namespace

 

I suppose it didn't seem useful to provide ranges on namespaces. A C++
namespace isn't a program entity of its own, it's a way of managing names of
entities. It doesn't even restrict the scope of those names; you can refer
to them anywhere if you use the fully qualified version of the name. (With
the obvious caveat about names defined in anonymous namespaces.)

 

Did you have a reason for considering a namespace to be a program entity?
What would that entity do?

--paulr

 

 

On Sep 14, 2023, at 3:50 PM, rifkin.jer--- via Dwarf-discuss
<dwarf-discuss@lists.dwarfstd.org <mailto:dwarf-discuss@lists.dwarfstd.org>
> wrote:

 

Hello,

What is the reasoning for not including range information on
DW_TAG_namespace DIEs? Is there a canonical way to check if a
DW_TAG_namespace DIE contains a given address?

 

Thank you,

Jeremy

-- 
Dwarf-discuss mailing list
 <mailto:Dwarf-discuss@lists.dwarfstd.org> Dwarf-discuss@lists.dwarfstd.org
 <https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss>
https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dwarfstd.org/pipermail/dwarf-discuss/attachments/20230915/7394955c/attachment-0001.htm>


More information about the Dwarf-discuss mailing list