diff options
author | Devang Patel <dpatel@apple.com> | 2009-01-06 21:07:30 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-01-06 21:07:30 +0000 |
commit | 9304b385967eaa8ba09ac9d59a0cdd17f4483d43 (patch) | |
tree | d94151ad4f75a904216458e546171b7af3710f41 | |
parent | dd9127da4af6f9e068c264ea886b3baf514392b2 (diff) | |
download | external_llvm-9304b385967eaa8ba09ac9d59a0cdd17f4483d43.zip external_llvm-9304b385967eaa8ba09ac9d59a0cdd17f4483d43.tar.gz external_llvm-9304b385967eaa8ba09ac9d59a0cdd17f4483d43.tar.bz2 |
Set up DwarfDebug using DebugInfo API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61822 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index fb0c86b..6e2011e 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -3291,6 +3291,39 @@ public: delete Values[j]; } + /// SetDebugInfo - Create global DIEs and emit initial debug info sections. + /// This is inovked by the target AsmPrinter. + void SetDebugInfo() { + // FIXME - Check if the module has debug info or not. + // Create all the compile unit DIEs. + ConstructCompileUnits(); + + // Create DIEs for each of the externally visible global variables. + ConstructGlobalVariableDIEs(); + + // Create DIEs for each of the externally visible subprograms. + ConstructSubprograms(); + + // Prime section data. + SectionMap.insert(TAI->getTextSection()); + + // Print out .file directives to specify files for .loc directives. These + // are printed out early so that they precede any .loc directives. + if (TAI->hasDotLocAndDotFile()) { + for (unsigned i = 1, e = SrcFiles.size(); i <= e; ++i) { + sys::Path FullPath(Directories[SrcFiles[i].getDirectoryID()]); + bool AppendOk = FullPath.appendComponent(SrcFiles[i].getName()); + assert(AppendOk && "Could not append filename to directory!"); + AppendOk = false; + Asm->EmitFile(i, FullPath.toString()); + Asm->EOL(); + } + } + + // Emit initial sections + EmitInitial(); + } + /// SetModuleInfo - Set machine module information when it's known that pass /// manager has created it. Set by the target AsmPrinter. void SetModuleInfo(MachineModuleInfo *mmi) { |