[llvm] r235988 - Use CIE version 4 for dwarf4.

Keith Walker kwalker at arm.com
Mon May 11 09:08:01 PDT 2015


As Paul said, this break the processing of the frame information when the
CIE header has a version number of 4 due to the missing header fields.

The code that got added to allow the CIE version number to be set to 4,
ensures that if generating a .eh_frame section then the version number
returned is 1 (which is what dwarf-2 requires and .eh_frame requires).

There is a patch up for review at http://reviews.llvm.org/D9558 to add the 2
missing header fields.

Keith

> -----Original Message-----
> From: Robinson, Paul [mailto:Paul_Robinson at playstation.sony.com]
> Sent: 11 May 2015 15:33
> To: Anton Korobeynikov; Keith Walker
> Cc: Commit Messages and Patches for LLVM
> Subject: RE: [llvm] r235988 - Use CIE version 4 for dwarf4.
> 
> > > So although the version number in the CIE is now 4 for dwarf-4, the
> 2
> > new
> > > fields expected in a dwarf-4 CIE header are currently missing.
> > And this breaks the debug info everywhere, right?
> 
> Each section (more-or-less) has its own version number, so this would
> break
> only the interpretation of the frame section.
> 
> My reading of the standards is that if the section is named .debug_frame
> then its content is defined by the DWARF standard. If .debug_frame has
> version=4 then it needs the new fields to conform.
> 
> If the section is named .eh_frame then its content is defined by the
> ABI,
> which arguably requires it to use the DWARF 2 format. But if you emit a
> .eh_frame section with version=4 then it should use DWARF 4 format as
> well.
> But I think it is not guaranteed that all relevant software will
> understand
> .eh_frame with version=4.
> --paulr







More information about the llvm-commits mailing list