On Fri, 28 Jan 2022 09:38:14 GMT, Christian Hagedorn <chaged...@openjdk.org> 
wrote:

> > > That's interesting. Is this implementation still around somewhere? I'm 
> > > glad that some of the mentioned things are not a problem anymore.
> > 
> > 
> > Not I know. IIRC, it was based on DWARF 2.
> 
> Okay, thanks.
> 
> > > > * Different compiler (and different version of the same compiler) can 
> > > > generate DWARF with different version, may not be compatible with each 
> > > > other, as DWARF allows custom fields.
> > > > * Maintenance cost to catch up DWARF spec/compiler changes.
> > > 
> > > 
> > > That's indeed a problem of facing different DWARF versions. For this 
> > > parser, I tried to support the current default of GCC 10.x which is DWARF 
> > > 4. This standard was introduced in 2010 and is probably used by most 
> > > compilers nowadays at least (if not already DWARF 5 which was introduced 
> > > in 2017). However, even with GCC 10.x, it emitted DWARF 3 for one of the 
> > > sections (I'm not sure why) which I also needed to support - thus you can 
> > > never be sure.
> > > DWARF 5 is still experimental for GCC 10.x and had some issues when I 
> > > tried that out back there - so I stayed away from implementing parsing 
> > > steps for it. But now with GCC 11.x, DWARF 5 seems to have become the 
> > > default. I might have to try out what's being emitted for HotSpot. But I 
> > > think for now, it is better to only focus on DWARF 4 instead of trying to 
> > > support various versions in one patch - we could still come back to that 
> > > later if it becomes widely used. Even if DWARF 5 is emitted, GCC could be 
> > > configured, for example, to emit DWARF 4 only which is probably an 
> > > acceptable workaround for testing environments.
> > 
> > 
> > I think maintenance and test could be major pain points. Based on 
> > build.html, we can use gcc version anywhere between 5.0 and 10.2, it could 
> > be a challenge to ensure all supported version work correctly.
> 
> I agree, that wide range is a problem and older GCC versions emitting older 
> DWARF version are not covered with this patch. If I parse a DWARF section 
> header with an unsupported version I will just bail out and it falls back to 
> the stack trace we are seeing today without source information. That's 
> probably fine for the scope of this patch. We could still come back and add 
> support for other missing versions.

I see, it makes sense. Thanks!

-------------

PR: https://git.openjdk.java.net/jdk/pull/7126

Reply via email to