[PATCH] DebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes version field

David Majnemer david.majnemer at gmail.com
Tue Aug 20 23:16:21 PDT 2013


Sorry about that, will remember next time!

Committed in r188869.


On Tue, Aug 20, 2013 at 10:56 PM, Eric Christopher <echristo at gmail.com>wrote:

> FWIW llvm-commits for the back end patches next time :)
>
> -eric
>
> On Tue, Aug 20, 2013 at 10:27 PM, David Majnemer
> <david.majnemer at gmail.com> wrote:
> > Hi echristo, dblaikie,
> >
> > LLVM would generate DWARF with version 3 in the .debug_pubname and
> > .debug_pubtypes version fields.  This would lead SGI dwarfdump to fail
> > parsing the DWARF with (in the instance of .debug_pubnames) would exit
> > with:
> > dwarfdump ERROR:  dwarf_get_globals: DW_DLE_PUBNAMES_VERSION_ERROR (123)
> >
> > This fixes PR16950.
> >
> > http://llvm-reviews.chandlerc.com/D1454
> >
> > Files:
> >   include/llvm/Support/Dwarf.h
> >   lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> >   test/DebugInfo/dwarf-public-names.ll
> >
> > Index: include/llvm/Support/Dwarf.h
> > ===================================================================
> > --- include/llvm/Support/Dwarf.h
> > +++ include/llvm/Support/Dwarf.h
> > @@ -56,7 +56,9 @@
> >
> >    DW_TAG_user_base = 0x1000,            // Recommended base for user
> tags.
> >
> > -  DW_CIE_VERSION = 1                    // Common frame information
> version.
> > +  DW_CIE_VERSION = 1,                   // Common frame information
> version.
> > +  DW_PUBTYPES_VERSION = 2,              // Section version number for
> .debug_pubtypes.
> > +  DW_PUBNAMES_VERSION = 2               // Section version number for
> .debug_pubnames.
> >  };
> >
> >
> > Index: lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> > ===================================================================
> > --- lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> > +++ lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> > @@ -35,6 +35,7 @@
> >  #include "llvm/MC/MCSymbol.h"
> >  #include "llvm/Support/CommandLine.h"
> >  #include "llvm/Support/Debug.h"
> > +#include "llvm/Support/Dwarf.h"
> >  #include "llvm/Support/ErrorHandling.h"
> >  #include "llvm/Support/FormattedStream.h"
> >  #include "llvm/Support/MD5.h"
> > @@ -2321,7 +2322,7 @@
> >      Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("pubnames_begin",
> ID));
> >
> >      Asm->OutStreamer.AddComment("DWARF Version");
> > -    Asm->EmitInt16(DwarfVersion);
> > +    Asm->EmitInt16(dwarf::DW_PUBNAMES_VERSION);
> >
> >      Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
> >
>  Asm->EmitSectionOffset(Asm->GetTempSymbol(ISec->getLabelBeginName(), ID),
> > @@ -2368,7 +2369,7 @@
> >
>  TheCU->getUniqueID()));
> >
> >      if (Asm->isVerbose()) Asm->OutStreamer.AddComment("DWARF Version");
> > -    Asm->EmitInt16(DwarfVersion);
> > +    Asm->EmitInt16(dwarf::DW_PUBTYPES_VERSION);
> >
> >      Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
> >      const MCSection *ISec =
> Asm->getObjFileLowering().getDwarfInfoSection();
> > Index: test/DebugInfo/dwarf-public-names.ll
> > ===================================================================
> > --- test/DebugInfo/dwarf-public-names.ll
> > +++ test/DebugInfo/dwarf-public-names.ll
> > @@ -37,6 +37,7 @@
> >
> >  ; Skip the output to the header of the pubnames section.
> >  ; CHECK: debug_pubnames
> > +; CHECK: Version:               2
> >
> >  ; Check for each name in the output.
> >  ; CHECK: global_namespace_variable
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130820/6dcb7ae1/attachment.html>


More information about the cfe-commits mailing list