[LLVMdev] [patch] Dwarf Debug info support for COFF object files

Devang Patel dpatel at apple.com
Thu Feb 24 11:52:05 PST 2011


On Feb 24, 2011, at 11:36 AM, Devang Patel wrote:

> 
> On Feb 12, 2011, at 2:07 AM, Nathan Jeffords wrote:
> 
>> Hello All,
>> 
>> I have created a set of patches that get dwarf debugging support working for the COFF object file. I also believe I have fixed what appears to be a bug in how line info sections are referred to from the DW_TAG_compile_unit DIE. I have run some basic tests, analyzed dumps of both the objects files and the final executables, and run a test program against mingw-gdb and everything looks to be in order.
>> 
>> Here is a short description of what the patches accomplish
>> 
>> die.patch:
>>  adds a new DIEValue type to represent a section relative label. (their was already a type id specified so I provided a class modeled after DIELabel)
>> 
>> secrel-fixup.patch:
>>  creats a new target specific fixup type (reloc_coff_secrel32) to represent COFF Section Relative relocations and updats the COFF object writer to write it as COFF_IMAGE_REL_AMD64_SREL32
>> 
>> secrel-streamer.patch
>>  adds a new directive in the MCStreamer interface to allow the AsmPrinter to emit a section relative label and provides implementations for all existings Streamer (all but WinCOFF either forward or error on it)
>> 
>> secrel-dwarf.patch
>>  updates dwarf printing code to make use of the new directive & DIE value where appropriate (this is where the bug fix is)
>> 
>> coff-debug.patch
>>  turns the dwarf output on in the X86/COFF AsmInfo classes
> 
> This patches look fine. I am curious, how are you testing debug info support for COFF ?

Well, this patch fails following FE tests on darwin.
    LLVM :: FrontendC++/2006-11-06-StackTrace.cpp
    LLVM :: FrontendC++/2006-11-30-Pubnames.cpp
    LLVM :: FrontendC++/2010-08-31-ByValArg.cpp
    LLVM :: FrontendC/2009-02-17-BitField-dbg.c
    LLVM :: FrontendC/2010-01-14-StaticVariable.c
    LLVM :: FrontendC/2010-02-16-DbgVarScope.c
    LLVM :: FrontendObjC/2009-08-17-DebugInfo.m

-
Devang



More information about the llvm-dev mailing list