summaryrefslogtreecommitdiff
path: root/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2011-09-15 04:15:59 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2011-09-15 04:15:59 +0000
commit7b97442b491f0cc69eb0676323b7fe4b14837ac1 (patch)
treeac10eddeb869154187f1981e30346b30d0646965 /lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
parent42180e83368b42c4ba4ce01d35e6c97d8b9d3b4b (diff)
downloadllvm-7b97442b491f0cc69eb0676323b7fe4b14837ac1.tar.gz
llvm-7b97442b491f0cc69eb0676323b7fe4b14837ac1.tar.bz2
llvm-7b97442b491f0cc69eb0676323b7fe4b14837ac1.tar.xz
DWARF: Print the number for unknown abbrev fields.
Thanks Nick! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139778 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/DebugInfo/DWARFAbbreviationDeclaration.cpp')
-rw-r--r--lib/DebugInfo/DWARFAbbreviationDeclaration.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp b/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
index 74c975304a..0df692c3a3 100644
--- a/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
+++ b/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
@@ -9,6 +9,7 @@
#include "DWARFAbbreviationDeclaration.h"
#include "llvm/Support/Dwarf.h"
+#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
using namespace dwarf;
@@ -48,14 +49,26 @@ DWARFAbbreviationDeclaration::extract(DataExtractor data, uint32_t* offset_ptr,
void DWARFAbbreviationDeclaration::dump(raw_ostream &OS) const {
const char *tagString = TagString(getTag());
- OS << '[' << getCode() << "] " << (tagString ? tagString : "DW_TAG_Unknown")
- << "\tDW_CHILDREN_"
- << (hasChildren() ? "yes" : "no") << '\n';
+ OS << '[' << getCode() << "] ";
+ if (tagString)
+ OS << tagString;
+ else
+ OS << format("DW_TAG_Unknown_%x", getTag());
+ OS << "\tDW_CHILDREN_" << (hasChildren() ? "yes" : "no") << '\n';
for (unsigned i = 0, e = Attributes.size(); i != e; ++i) {
+ OS << '\t';
const char *attrString = AttributeString(Attributes[i].getAttribute());
+ if (attrString)
+ OS << attrString;
+ else
+ OS << format("DW_AT_Unknown_%x", Attributes[i].getAttribute());
+ OS << '\t';
const char *formString = FormEncodingString(Attributes[i].getForm());
- OS << '\t' << (attrString ? attrString : "DW_AT_Unknown")
- << '\t' << (formString ? formString : "DW_FORM_Unknown") << '\n';
+ if (formString)
+ OS << formString;
+ else
+ OS << format("DW_FORM_Unknown_%x", Attributes[i].getForm());
+ OS << '\n';
}
OS << '\n';
}