[PATCH] Debug Info on Windows

Robinson, Paul Paul_Robinson at playstation.sony.com
Tue Jul 30 10:38:14 PDT 2013


> Op 26-7-2013 22:39, Carlo Kok schreef:
> > Op 26-7-2013 21:58, David Blaikie schreef:
> >>>> b) Could we sink this logic down into DIELabel (or
> >>>> DIEString)::EmitValue rather than having the special case up here
> in
> >>>> emitDIE?
> >>>
> >>>
> >>> DIELabel then. DIEString calls DIELabel.
> >>
> >> Great... and sorry to keep iterating like this, but looking now at
> the
> >> only current (committed) use of "needsDwarfSectionOffsetDirective"
> >> that's down in AsmPrinter::EmitSectionOffset, so what would happen if
> >> we pushed this one layer further down, into
> >> AsmPrinter::EmitLabelReference?
> >>
> >> - Dave
> >>
> >
> >
> > The only other thing this would affect is DW_AT_Location:
> >      case dwarf::DW_AT_location: {
> >        if (DIELabel *L = dyn_cast<DIELabel>(Values[i])) {
> >          if (Asm->MAI->doesDwarfUseRelocationsAcrossSections())
> >            Asm->EmitLabelReference(L->getValue(), 4);
> >          else
> >            Asm->EmitLabelDifference(L->getValue(),
> > DwarfDebugLocSectionSym, 4);
> >        } else {
> >          Values[i]->EmitValue(Asm, Form);
> >        }
> >        break;
> >      }
> >
> >
> > Problem is, I don't know what this would affect.
> >
> 
> I can't even get one of the clang testcases to hit this. What would be
> the next step? The last version I sent works on Windows and doesn't
> affect anything else (doesDwarfUseRelocationsAcrossSections is only set
> on Windows/COFF).

Eh? It's set for everything except Darwin, I thought.
For sure it's set for ELF-using targets.
--paulr

> 
> --
> Carlo Kok
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list