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

Nathan Jeffords blunted2night at gmail.com
Sat Feb 12 02:07:25 PST 2011


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

- Nathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: die.patch
Type: application/octet-stream
Size: 2387 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: secrel-fixup.patch
Type: application/octet-stream
Size: 2124 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: secrel-streamer.patch
Type: application/octet-stream
Size: 6293 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: secrel-dwarf.patch
Type: application/octet-stream
Size: 2350 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: coff-debug.patch
Type: application/octet-stream
Size: 822 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/19580f05/attachment-0004.obj>


More information about the llvm-dev mailing list