[llvm-commits] [PATCH] Add support for CodeView debug information

Kai Nacke kai at redstar.de
Tue Dec 4 09:23:16 PST 2012


I started to work on support for emitting CodeView debug information.

In order to support other debug information I extracted the used interface of the DwarfDebug class into an abstract class. After that I changed the AsmPrinter class to use the new interface. (Patch 0001)

The next step is to enumerate all debug information types. The boolean variable SupportsDebugInformation is replaced by DebugInformationType which is based on an enumeration. (Patch 0002)

During development I noticed that there is no possibility to get the return type from DISubprogramm if the return type is modelled as DIType. Because I need this functionality I added the support. (Patch 0003)
(BTW: Does DISubprogram.Verify check the right thing in case the return
type is modelled as DIType?)

Finally I created the classes needed for CodeView debug symbol output. This is really work-in-progress and is not ready yet. Nevertheless it can output type information for simply signatures like int add(int,int). It is a proof of concept that the interface is working. (Patch 0004)

I like to get review and comments on patches 0001-0003. Is my approach
ok? If yes then I like to get these patches committed so that further
updates to debug related classes can consider the new interface.

Thank you very much!


http://llvm-reviews.chandlerc.com/D165

Files:
  include/llvm/CodeGen/AsmPrinter.h
  include/llvm/DebugInfo.h
  include/llvm/MC/MCAsmInfo.h
  include/llvm/MC/MCObjectFileInfo.h
  include/llvm/Support/CodeView.h
  lib/CodeGen/AsmPrinter/AsmDebug.h
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/AsmPrinter/CMakeLists.txt
  lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  lib/CodeGen/AsmPrinter/CodeViewDebug.h
  lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  lib/CodeGen/AsmPrinter/DwarfDebug.h
  lib/MC/MCAsmInfo.cpp
  lib/MC/MCAsmInfoCOFF.cpp
  lib/MC/MCObjectFileInfo.cpp
  lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
  lib/Target/MBlaze/MCTargetDesc/MBlazeMCAsmInfo.cpp
  lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
  lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
  lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
  lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
  lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
  lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D165.1.patch
Type: text/x-patch
Size: 64020 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121204/9e58e611/attachment.bin>


More information about the llvm-commits mailing list