Add support for DebugFission to DWARF parser

Summary:
1) Make llvm-symbolizer properly symbolize
files with split debug info (by using stanalone .dwo files).
2) Make DWARFCompileUnit parse and store corresponding .dwo file,
if necessary.
3) Make bits of DWARF parsing more CompileUnit-oriented.

Reviewers: echristo

Reviewed By: echristo

CC: bkramer, llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1164

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alexey Samsonov
2013-08-27 09:20:22 +00:00
parent 1567abe74f
commit 63fd2af389
7 changed files with 250 additions and 91 deletions
+4 -6
View File
@@ -20,7 +20,7 @@ class raw_ostream;
class DWARFFormValue {
public:
struct ValueType {
ValueType() : data(NULL) {
ValueType() : data(NULL), IsDWOIndex(false) {
uval = 0;
}
@@ -30,6 +30,7 @@ public:
const char* cstr;
};
const uint8_t* data;
bool IsDWOIndex;
};
enum {
@@ -63,11 +64,8 @@ public:
bool resolveCompileUnitReferences(const DWARFCompileUnit* cu);
uint64_t getUnsigned() const { return Value.uval; }
int64_t getSigned() const { return Value.sval; }
const char *getAsCString(const DataExtractor *debug_str_data_ptr) const;
const char *getIndirectCString(const DataExtractor *,
const DataExtractor *) const;
uint64_t getIndirectAddress(const DataExtractor *,
const DWARFCompileUnit *) const;
const char *getAsCString(const DWARFCompileUnit *CU) const;
uint64_t getAsAddress(const DWARFCompileUnit *CU) const;
bool skipValue(DataExtractor debug_info_data, uint32_t *offset_ptr,
const DWARFCompileUnit *cu) const;
static bool skipValue(uint16_t form, DataExtractor debug_info_data,