[llvm] r252866 - dwarfdump: Added macro support to llvm-dwarfdump tool.

Amjad Aboud via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 12 01:38:54 PST 2015


Author: aaboud
Date: Thu Nov 12 03:38:54 2015
New Revision: 252866

URL: http://llvm.org/viewvc/llvm-project?rev=252866&view=rev
Log:
dwarfdump: Added macro support to llvm-dwarfdump tool.

Added "macro" option to "-debug-dump" flag, which trigger parsing and dumping of the ".debug_macinfo" section.

Differential Revision: http://reviews.llvm.org/D14294

Added:
    llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
    llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.cc
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.h
    llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.o   (with props)
    llvm/trunk/test/DebugInfo/debugmacinfo.test
Modified:
    llvm/trunk/include/llvm/DebugInfo/DIContext.h
    llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFContext.h
    llvm/trunk/include/llvm/Support/Dwarf.h
    llvm/trunk/lib/DebugInfo/DWARF/CMakeLists.txt
    llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp
    llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp
    llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.h
    llvm/trunk/lib/Support/Dwarf.cpp
    llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

Modified: llvm/trunk/include/llvm/DebugInfo/DIContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DIContext.h?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/DIContext.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/DIContext.h Thu Nov 12 03:38:54 2015
@@ -112,6 +112,7 @@ enum DIDumpType {
   DIDT_LineDwo,
   DIDT_Loc,
   DIDT_LocDwo,
+  DIDT_Macro,
   DIDT_Ranges,
   DIDT_Pubnames,
   DIDT_Pubtypes,

Modified: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFContext.h?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFContext.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFContext.h Thu Nov 12 03:38:54 2015
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugLine.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
+#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
 #include "llvm/DebugInfo/DWARF/DWARFSection.h"
 #include "llvm/DebugInfo/DWARF/DWARFTypeUnit.h"
@@ -45,6 +46,7 @@ class DWARFContext : public DIContext {
   std::unique_ptr<DWARFDebugAranges> Aranges;
   std::unique_ptr<DWARFDebugLine> Line;
   std::unique_ptr<DWARFDebugFrame> DebugFrame;
+  std::unique_ptr<DWARFDebugMacro> Macro;
 
   DWARFUnitSection<DWARFCompileUnit> DWOCUs;
   std::vector<DWARFUnitSection<DWARFTypeUnit>> DWOTUs;
@@ -161,6 +163,9 @@ public:
   /// Get a pointer to the parsed frame information object.
   const DWARFDebugFrame *getDebugFrame();
 
+  /// Get a pointer to the parsed DebugMacro object.
+  const DWARFDebugMacro *getDebugMacro();
+
   /// Get a pointer to a parsed line table corresponding to a compile unit.
   const DWARFDebugLine::LineTable *getLineTableForUnit(DWARFUnit *cu);
 
@@ -184,6 +189,7 @@ public:
   virtual const DWARFSection &getLineSection() = 0;
   virtual StringRef getStringSection() = 0;
   virtual StringRef getRangeSection() = 0;
+  virtual StringRef getMacinfoSection() = 0;
   virtual StringRef getPubNamesSection() = 0;
   virtual StringRef getPubTypesSection() = 0;
   virtual StringRef getGnuPubNamesSection() = 0;
@@ -234,6 +240,7 @@ class DWARFContextInMemory : public DWAR
   DWARFSection LineSection;
   StringRef StringSection;
   StringRef RangeSection;
+  StringRef MacinfoSection;
   StringRef PubNamesSection;
   StringRef PubTypesSection;
   StringRef GnuPubNamesSection;
@@ -272,6 +279,7 @@ public:
   const DWARFSection &getLineSection() override { return LineSection; }
   StringRef getStringSection() override { return StringSection; }
   StringRef getRangeSection() override { return RangeSection; }
+  StringRef getMacinfoSection() override { return MacinfoSection; }
   StringRef getPubNamesSection() override { return PubNamesSection; }
   StringRef getPubTypesSection() override { return PubTypesSection; }
   StringRef getGnuPubNamesSection() override { return GnuPubNamesSection; }

Added: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h?rev=252866&view=auto
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (added)
+++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h Thu Nov 12 03:38:54 2015
@@ -0,0 +1,59 @@
+//===-- DWARFDebugMacro.h ---------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
+#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
+
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/DataExtractor.h"
+#include "llvm/Support/Dwarf.h"
+
+namespace llvm {
+
+class raw_ostream;
+
+class DWARFDebugMacro {
+  /// A single macro entry within a macro list.
+  struct Entry {
+    /// The type of the macro entry.
+    uint32_t Type;
+    union {
+      /// The source line where the macro is defined.
+      uint64_t Line;
+      /// Vendor extension constant value.
+      uint64_t ExtConstant;
+    };
+
+    union {
+      /// The string (name, value) of the macro entry.
+      const char *MacroStr;
+      // An unsigned integer indicating the identity of the source file.
+      uint64_t File;
+      /// Vendor extension string.
+      const char *ExtStr;
+    };
+  };
+
+  typedef SmallVector<Entry, 4> MacroList;
+
+  /// A list of all the macro entries in the debug_macinfo section.
+  MacroList Macros;
+
+public:
+  DWARFDebugMacro() {}
+  /// Print the macro list found within the debug_macinfo section.
+  void dump(raw_ostream &OS) const;
+  /// Parse the debug_macinfo section accessible via the 'data' parameter.
+  void parse(DataExtractor data);
+};
+
+}
+
+#endif

Modified: llvm/trunk/include/llvm/Support/Dwarf.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Dwarf.h?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/Dwarf.h (original)
+++ llvm/trunk/include/llvm/Support/Dwarf.h Thu Nov 12 03:38:54 2015
@@ -40,6 +40,7 @@ enum LLVMConstants : uint32_t {
   // LLVM mock tags (see also llvm/Support/Dwarf.def).
   DW_TAG_invalid = ~0U,        // Tag for invalid results.
   DW_VIRTUALITY_invalid = ~0U, // Virtuality for invalid results.
+  DW_MACINFO_invalid = ~0U,    // Macinfo type for invalid results.
 
   // Other constants.
   DWARF_VERSION = 4,       // Default dwarf version we output.

Modified: llvm/trunk/lib/DebugInfo/DWARF/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/CMakeLists.txt?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/CMakeLists.txt (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/CMakeLists.txt Thu Nov 12 03:38:54 2015
@@ -10,6 +10,7 @@ add_llvm_library(LLVMDebugInfoDWARF
   DWARFDebugInfoEntry.cpp
   DWARFDebugLine.cpp
   DWARFDebugLoc.cpp
+  DWARFDebugMacro.cpp
   DWARFDebugRangeList.cpp
   DWARFFormValue.cpp
   DWARFTypeUnit.cpp

Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp Thu Nov 12 03:38:54 2015
@@ -127,6 +127,11 @@ void DWARFContext::dump(raw_ostream &OS,
     getDebugFrame()->dump(OS);
   }
 
+  if (DumpType == DIDT_All || DumpType == DIDT_Macro) {
+    OS << "\n.debug_macinfo contents:\n";
+    getDebugMacro()->dump(OS);
+  }
+
   uint32_t offset = 0;
   if (DumpType == DIDT_All || DumpType == DIDT_Aranges) {
     OS << "\n.debug_aranges contents:\n";
@@ -341,6 +346,16 @@ const DWARFDebugFrame *DWARFContext::get
   return DebugFrame.get();
 }
 
+const DWARFDebugMacro *DWARFContext::getDebugMacro() {
+  if (Macro)
+    return Macro.get();
+
+  DataExtractor MacinfoData(getMacinfoSection(), isLittleEndian(), 0);
+  Macro.reset(new DWARFDebugMacro());
+  Macro->parse(MacinfoData);
+  return Macro.get();
+}
+
 const DWARFLineTable *
 DWARFContext::getLineTableForUnit(DWARFUnit *U) {
   if (!Line)
@@ -611,6 +626,7 @@ DWARFContextInMemory::DWARFContextInMemo
             .Case("debug_frame", &DebugFrameSection)
             .Case("debug_str", &StringSection)
             .Case("debug_ranges", &RangeSection)
+            .Case("debug_macinfo", &MacinfoSection)
             .Case("debug_pubnames", &PubNamesSection)
             .Case("debug_pubtypes", &PubTypesSection)
             .Case("debug_gnu_pubnames", &GnuPubNamesSection)

Added: llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp?rev=252866&view=auto
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (added)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp Thu Nov 12 03:38:54 2015
@@ -0,0 +1,103 @@
+//===-- DWARFDebugMacro.cpp -----------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "SyntaxHighlighting.h"
+#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h"
+#include "llvm/Support/Compiler.h"
+#include "llvm/Support/Dwarf.h"
+#include "llvm/Support/Format.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+using namespace dwarf;
+using namespace syntax;
+
+void DWARFDebugMacro::dump(raw_ostream &OS) const {
+  unsigned IndLevel = 0;
+  for (const Entry &E : Macros) {
+    // There should not be DW_MACINFO_end_file when IndLevel is Zero. However,
+    // this check handles the case of corrupted ".debug_macinfo" section.
+    if (IndLevel > 0)
+      IndLevel -= (E.Type == DW_MACINFO_end_file);
+    // Print indentation.
+    for (unsigned I = 0; I < IndLevel; I++)
+      OS << "  ";
+    IndLevel += (E.Type == DW_MACINFO_start_file);
+
+    WithColor(OS, syntax::Macro).get() << MacinfoString(E.Type);
+    switch (E.Type) {
+    default:
+      // Got a corrupted ".debug_macinfo" section (invalid macinfo type).
+      break;
+    case DW_MACINFO_define:
+    case DW_MACINFO_undef:
+      OS << " - lineno: " << E.Line;
+      OS << " macro: " << E.MacroStr;
+      break;
+    case DW_MACINFO_start_file:
+      OS << " - lineno: " << E.Line;
+      OS << " filenum: " << E.File;
+      break;
+    case DW_MACINFO_end_file:
+      break;
+    case DW_MACINFO_vendor_ext:
+      OS << " - constant: " << E.ExtConstant;
+      OS << " string: " << E.ExtStr;
+      break;
+    }
+    OS << "\n";
+  }
+}
+
+void DWARFDebugMacro::parse(DataExtractor data) {
+  uint32_t Offset = 0;
+  while (data.isValidOffset(Offset)) {
+    // A macro list entry consists of:
+    Entry E;
+    // 1. Macinfo type
+    E.Type = data.getULEB128(&Offset);
+
+    if (E.Type == 0) {
+      // Reached end of ".debug_macinfo" section.
+      return;
+    }
+
+    switch (E.Type) {
+    default:
+      // Got a corrupted ".debug_macinfo" section (invalid macinfo type).
+      // Push the corrupted entry to the list and halt parsing.
+      E.Type = DW_MACINFO_invalid;
+      Macros.push_back(E);
+      return;
+    case DW_MACINFO_define:
+    case DW_MACINFO_undef:
+      // 2. Source line
+      E.Line = data.getULEB128(&Offset);
+      // 3. Macro string
+      E.MacroStr = data.getCStr(&Offset);
+      break;
+    case DW_MACINFO_start_file:
+      // 2. Source line
+      E.Line = data.getULEB128(&Offset);
+      // 3. Source file id
+      E.File = data.getULEB128(&Offset);
+      break;
+    case DW_MACINFO_end_file:
+      break;
+    case DW_MACINFO_vendor_ext:
+      // 2. Vendor extension constant
+      E.ExtConstant = data.getULEB128(&Offset);
+      // 3. Vendor extension string
+      E.ExtStr = data.getCStr(&Offset);
+      break;
+    }
+
+    Macros.push_back(E);
+  }
+}

Modified: llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp Thu Nov 12 03:38:54 2015
@@ -27,6 +27,7 @@ WithColor::WithColor(llvm::raw_ostream &
     case Tag:        OS.changeColor(llvm::raw_ostream::BLUE);    break;
     case Attribute:  OS.changeColor(llvm::raw_ostream::CYAN);    break;
     case Enumerator: OS.changeColor(llvm::raw_ostream::MAGENTA); break;
+    case Macro:      OS.changeColor(llvm::raw_ostream::RED);     break;
     }
   }
 }

Modified: llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.h?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.h (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/SyntaxHighlighting.h Thu Nov 12 03:38:54 2015
@@ -17,7 +17,7 @@ namespace dwarf {
 namespace syntax {
 
 // Symbolic names for various syntax elements.
-enum HighlightColor { Address, String, Tag, Attribute, Enumerator };
+enum HighlightColor { Address, String, Tag, Attribute, Enumerator, Macro };
 
 /// An RAII object that temporarily switches an output stream to a
 /// specific color.

Modified: llvm/trunk/lib/Support/Dwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Dwarf.cpp?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Dwarf.cpp (original)
+++ llvm/trunk/lib/Support/Dwarf.cpp Thu Nov 12 03:38:54 2015
@@ -468,6 +468,7 @@ const char *llvm::dwarf::MacinfoString(u
   case DW_MACINFO_start_file:            return "DW_MACINFO_start_file";
   case DW_MACINFO_end_file:              return "DW_MACINFO_end_file";
   case DW_MACINFO_vendor_ext:            return "DW_MACINFO_vendor_ext";
+  case DW_MACINFO_invalid:               return "DW_MACINFO_invalid";
   }
   return nullptr;
 }

Added: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h?rev=252866&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h (added)
+++ llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h Thu Nov 12 03:38:54 2015
@@ -0,0 +1 @@
+#define M4 Value4

Added: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.cc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.cc?rev=252866&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.cc (added)
+++ llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.cc Thu Nov 12 03:38:54 2015
@@ -0,0 +1,11 @@
+#define M1 Value1
+#include "dwarfdump-macro.h"
+#define M2(x, y)   ((x)+(y)* Value2)
+
+// Built with GCC
+// $ mkdir -p /tmp/dbginfo
+// $ cp dwarfdump-macro.cc /tmp/dbginfo
+// $ cp dwarfdump-macro.h /tmp/dbginfo
+// $ cp dwarfdump-macro-cmd.h /tmp/dbginfo
+// $ cd /tmp/dbginfo
+// $ g++ -c -g3 -O0 -DM3=Value3 -include dwarfdump-macro-cmd.h dwarfdump-macro.cc -o <output>

Added: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.h?rev=252866&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.h (added)
+++ llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.h Thu Nov 12 03:38:54 2015
@@ -0,0 +1,5 @@
+
+
+
+#undef M1
+#define M1 NewValue1

Added: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.o
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.o?rev=252866&view=auto
==============================================================================
Binary file - no diff available.

Propchange: llvm/trunk/test/DebugInfo/Inputs/dwarfdump-macro.o
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: llvm/trunk/test/DebugInfo/debugmacinfo.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/debugmacinfo.test?rev=252866&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/debugmacinfo.test (added)
+++ llvm/trunk/test/DebugInfo/debugmacinfo.test Thu Nov 12 03:38:54 2015
@@ -0,0 +1,27 @@
+RUN: llvm-dwarfdump -debug-dump=macro %p/Inputs/dwarfdump-macro.o \
+RUN:   | FileCheck %s -check-prefix TEST_MACINFO
+RUN: llvm-dwarfdump -debug-dump=line %p/Inputs/dwarfdump-macro.o \
+RUN:   | FileCheck %s -check-prefix TEST_LINE
+
+
+; This test verifies that llvm-dwarfdump tools know how to read .debug_macinfo
+; section. It also checks that the file numbers fits with those in the
+; .debug_line section.
+TEST_MACINFO: .debug_macinfo contents:
+TEST_MACINFO: DW_MACINFO_define - lineno: 0 macro: M3 Value3
+TEST_MACINFO: DW_MACINFO_start_file - lineno: 0 filenum: 1
+TEST_MACINFO:   DW_MACINFO_start_file - lineno: 0 filenum: 2
+TEST_MACINFO:     DW_MACINFO_define - lineno: 1 macro: M4 Value4
+TEST_MACINFO:   DW_MACINFO_end_file
+TEST_MACINFO:   DW_MACINFO_define - lineno: 1 macro: M1 Value1
+TEST_MACINFO:   DW_MACINFO_start_file - lineno: 2 filenum: 3
+TEST_MACINFO:     DW_MACINFO_undef - lineno: 4 macro: M1
+TEST_MACINFO:     DW_MACINFO_define - lineno: 5 macro: M1 NewValue1
+TEST_MACINFO:   DW_MACINFO_end_file
+TEST_MACINFO:   DW_MACINFO_define - lineno: 3 macro: M2(x,y) ((x)+(y)* Value2)
+TEST_MACINFO: DW_MACINFO_end_file
+
+TEST_LINE: .debug_line contents:
+TEST_LINE: file_names[  1]    0 0x00000000 0x00000000 dwarfdump-macro.cc
+TEST_LINE: file_names[  2]    1 0x00000000 0x00000000 dwarfdump-macro-cmd.h
+TEST_LINE: file_names[  3]    0 0x00000000 0x00000000 dwarfdump-macro.h

Modified: llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp?rev=252866&r1=252865&r2=252866&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp (original)
+++ llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp Thu Nov 12 03:38:54 2015
@@ -60,6 +60,7 @@ static cl::opt<DIDumpType> DumpType(
         clEnumValN(DIDT_Loc, "loc", ".debug_loc"),
         clEnumValN(DIDT_LocDwo, "loc.dwo", ".debug_loc.dwo"),
         clEnumValN(DIDT_Frames, "frames", ".debug_frame"),
+        clEnumValN(DIDT_Macro, "macro", ".debug_macinfo"),
         clEnumValN(DIDT_Ranges, "ranges", ".debug_ranges"),
         clEnumValN(DIDT_Pubnames, "pubnames", ".debug_pubnames"),
         clEnumValN(DIDT_Pubtypes, "pubtypes", ".debug_pubtypes"),




More information about the llvm-commits mailing list