[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