Delete dead code.

Most of these are Dump functions that are never called, but there
is one instance of entire unused classes (DWARFDebugMacinfo and
DWARFDebugMacinfoEntry) which are also unreferenced in the codebase).

Differential Revision: https://reviews.llvm.org/D59276

llvm-svn: 356490
This commit is contained in:
Zachary Turner 2019-03-19 18:06:32 +00:00
parent 208381953b
commit aea0985814
23 changed files with 1 additions and 716 deletions

View File

@ -15,8 +15,6 @@ add_lldb_library(lldbPluginSymbolFileDWARF PLUGIN
DWARFDebugInfoEntry.cpp DWARFDebugInfoEntry.cpp
DWARFDebugLine.cpp DWARFDebugLine.cpp
DWARFDebugMacro.cpp DWARFDebugMacro.cpp
DWARFDebugMacinfo.cpp
DWARFDebugMacinfoEntry.cpp
DWARFDebugRanges.cpp DWARFDebugRanges.cpp
DWARFDeclContext.cpp DWARFDeclContext.cpp
DWARFDefines.cpp DWARFDefines.cpp

View File

@ -67,22 +67,6 @@ DWARFAbbreviationDeclaration::extract(const DWARFDataExtractor &data,
"entry"); "entry");
} }
void DWARFAbbreviationDeclaration::Dump(Stream *s) const {
s->Printf("Debug Abbreviation Declaration: code = 0x%4.4x, tag = %s, "
"has_children = %s\n",
m_code, DW_TAG_value_to_name(m_tag),
DW_CHILDREN_value_to_name(m_has_children));
DWARFAttribute::const_iterator pos;
for (pos = m_attributes.begin(); pos != m_attributes.end(); ++pos)
s->Printf(" attr = %s, form = %s\n",
DW_AT_value_to_name(pos->get_attr()),
DW_FORM_value_to_name(pos->get_form()));
s->Printf("\n");
}
bool DWARFAbbreviationDeclaration::IsValid() { bool DWARFAbbreviationDeclaration::IsValid() {
return m_code != 0 && m_tag != 0; return m_code != 0 && m_tag != 0;
} }

View File

@ -59,7 +59,6 @@ public:
extract(const lldb_private::DWARFDataExtractor &data, extract(const lldb_private::DWARFDataExtractor &data,
lldb::offset_t *offset_ptr); lldb::offset_t *offset_ptr);
bool IsValid(); bool IsValid();
void Dump(lldb_private::Stream *s) const;
bool operator==(const DWARFAbbreviationDeclaration &rhs) const; bool operator==(const DWARFAbbreviationDeclaration &rhs) const;
const DWARFAttribute::collection &Attributes() const { return m_attributes; } const DWARFAttribute::collection &Attributes() const { return m_attributes; }

View File

@ -171,12 +171,6 @@ size_t DWARFBaseDIE::GetAttributes(DWARFAttributes &attributes,
return 0; return 0;
} }
void DWARFBaseDIE::Dump(lldb_private::Stream *s,
const uint32_t recurse_depth) const {
if (s && IsValid())
m_die->Dump(GetDWARF(), GetCU(), *s, recurse_depth);
}
bool operator==(const DWARFBaseDIE &lhs, const DWARFBaseDIE &rhs) { bool operator==(const DWARFBaseDIE &lhs, const DWARFBaseDIE &rhs) {
return lhs.GetDIE() == rhs.GetDIE() && lhs.GetCU() == rhs.GetCU(); return lhs.GetDIE() == rhs.GetDIE() && lhs.GetCU() == rhs.GetCU();
} }

View File

@ -138,12 +138,6 @@ public:
size_t GetAttributes(DWARFAttributes &attributes, uint32_t depth = 0) const; size_t GetAttributes(DWARFAttributes &attributes, uint32_t depth = 0) const;
//----------------------------------------------------------------------
// Pretty printing
//----------------------------------------------------------------------
void Dump(lldb_private::Stream *s, const uint32_t recurse_depth) const;
protected: protected:
DWARFUnit *m_cu; DWARFUnit *m_cu;
DWARFDebugInfoEntry *m_die; DWARFDebugInfoEntry *m_die;

View File

@ -54,15 +54,6 @@ DWARFAbbreviationDeclarationSet::extract(const DWARFDataExtractor &data,
return llvm::ErrorSuccess(); return llvm::ErrorSuccess();
} }
//----------------------------------------------------------------------
// DWARFAbbreviationDeclarationSet::Dump()
//----------------------------------------------------------------------
void DWARFAbbreviationDeclarationSet::Dump(Stream *s) const {
std::for_each(
m_decls.begin(), m_decls.end(),
bind2nd(std::mem_fun_ref(&DWARFAbbreviationDeclaration::Dump), s));
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// DWARFAbbreviationDeclarationSet::GetAbbreviationDeclaration() // DWARFAbbreviationDeclarationSet::GetAbbreviationDeclaration()
//---------------------------------------------------------------------- //----------------------------------------------------------------------
@ -163,22 +154,6 @@ llvm::Error DWARFDebugAbbrev::parse(const DWARFDataExtractor &data) {
return llvm::ErrorSuccess(); return llvm::ErrorSuccess();
} }
//----------------------------------------------------------------------
// DWARFDebugAbbrev::Dump()
//----------------------------------------------------------------------
void DWARFDebugAbbrev::Dump(Stream *s) const {
if (m_abbrevCollMap.empty()) {
s->PutCString("< EMPTY >\n");
return;
}
DWARFAbbreviationDeclarationCollMapConstIter pos;
for (pos = m_abbrevCollMap.begin(); pos != m_abbrevCollMap.end(); ++pos) {
s->Printf("Abbrev table for offset: 0x%8.8x\n", pos->first);
pos->second.Dump(s);
}
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// DWARFDebugAbbrev::GetAbbreviationDeclarationSet() // DWARFDebugAbbrev::GetAbbreviationDeclarationSet()
//---------------------------------------------------------------------- //----------------------------------------------------------------------

View File

@ -34,7 +34,6 @@ public:
void Clear(); void Clear();
dw_offset_t GetOffset() const { return m_offset; } dw_offset_t GetOffset() const { return m_offset; }
void Dump(lldb_private::Stream *s) const;
/// Extract all abbrev decls in a set. Returns llvm::ErrorSuccess() on /// Extract all abbrev decls in a set. Returns llvm::ErrorSuccess() on
/// success, and an appropriate llvm::Error object otherwise. /// success, and an appropriate llvm::Error object otherwise.
@ -66,8 +65,6 @@ public:
DWARFDebugAbbrev(); DWARFDebugAbbrev();
const DWARFAbbreviationDeclarationSet * const DWARFAbbreviationDeclarationSet *
GetAbbreviationDeclarationSet(dw_offset_t cu_abbr_offset) const; GetAbbreviationDeclarationSet(dw_offset_t cu_abbr_offset) const;
void Dump(lldb_private::Stream *s) const;
/// Extract all abbreviations for a particular compile unit. Returns /// Extract all abbreviations for a particular compile unit. Returns
/// llvm::ErrorSuccess() on success, and an appropriate llvm::Error object /// llvm::ErrorSuccess() on success, and an appropriate llvm::Error object
/// otherwise. /// otherwise.

View File

@ -219,20 +219,6 @@ dw_offset_t DWARFDebugArangeSet::GetOffsetOfNextEntry() const {
return m_offset + m_header.length + 4; return m_offset + m_header.length + 4;
} }
void DWARFDebugArangeSet::Dump(Stream *s) const {
s->Printf("Address Range Header: length = 0x%8.8x, version = 0x%4.4x, "
"cu_offset = 0x%8.8x, addr_size = 0x%2.2x, seg_size = 0x%2.2x\n",
m_header.length, m_header.version, m_header.cu_offset,
m_header.addr_size, m_header.seg_size);
const uint32_t hex_width = m_header.addr_size * 2;
DescriptorConstIter pos;
DescriptorConstIter end = m_arange_descriptors.end();
for (pos = m_arange_descriptors.begin(); pos != end; ++pos)
s->Printf("[0x%*.*" PRIx64 " - 0x%*.*" PRIx64 ")\n", hex_width, hex_width,
pos->address, hex_width, hex_width, pos->end_address());
}
class DescriptorContainsAddress { class DescriptorContainsAddress {
public: public:
DescriptorContainsAddress(dw_addr_t address) : m_address(address) {} DescriptorContainsAddress(dw_addr_t address) : m_address(address) {}

View File

@ -46,7 +46,6 @@ public:
void Compact(); void Compact();
llvm::Error extract(const lldb_private::DWARFDataExtractor &data, llvm::Error extract(const lldb_private::DWARFDataExtractor &data,
lldb::offset_t *offset_ptr); lldb::offset_t *offset_ptr);
void Dump(lldb_private::Stream *s) const;
dw_offset_t GetCompileUnitDIEOffset() const { return m_header.cu_offset; } dw_offset_t GetCompileUnitDIEOffset() const { return m_header.cu_offset; }
dw_offset_t GetOffsetOfNextEntry() const; dw_offset_t GetOffsetOfNextEntry() const;
dw_offset_t FindAddress(dw_addr_t address) const; dw_offset_t FindAddress(dw_addr_t address) const;

View File

@ -13,6 +13,7 @@
#include <algorithm> #include <algorithm>
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Stream.h" #include "lldb/Utility/Stream.h"
#include "lldb/Utility/Timer.h" #include "lldb/Utility/Timer.h"

View File

@ -57,8 +57,6 @@ public:
return DW_INVALID_OFFSET; return DW_INVALID_OFFSET;
} }
static void Dump(SymbolFileDWARF *dwarf2Data, lldb_private::Stream *s);
protected: protected:
RangeToDIE m_aranges; RangeToDIE m_aranges;
}; };

View File

@ -364,23 +364,6 @@ bool DWARFDebugInfoEntry::Extract(SymbolFileDWARF *dwarf2Data,
return false; return false;
} }
//----------------------------------------------------------------------
// DumpAncestry
//
// Dumps all of a debug information entries parents up until oldest and all of
// it's attributes to the specified stream.
//----------------------------------------------------------------------
void DWARFDebugInfoEntry::DumpAncestry(SymbolFileDWARF *dwarf2Data,
const DWARFUnit *cu,
const DWARFDebugInfoEntry *oldest,
Stream &s,
uint32_t recurse_depth) const {
const DWARFDebugInfoEntry *parent = GetParent();
if (parent && parent != oldest)
parent->DumpAncestry(dwarf2Data, cu, oldest, s, 0);
Dump(dwarf2Data, cu, s, recurse_depth);
}
static dw_offset_t GetRangesOffset(const DWARFDebugRangesBase *debug_ranges, static dw_offset_t GetRangesOffset(const DWARFDebugRangesBase *debug_ranges,
DWARFFormValue &form_value) { DWARFFormValue &form_value) {
if (form_value.Form() == DW_FORM_rnglistx) if (form_value.Form() == DW_FORM_rnglistx)
@ -648,23 +631,6 @@ void DWARFDebugInfoEntry::Dump(SymbolFileDWARF *dwarf2Data,
} }
} }
void DWARFDebugInfoEntry::DumpLocation(SymbolFileDWARF *dwarf2Data,
DWARFUnit *cu, Stream &s) const {
const DWARFBaseDIE cu_die = cu->GetUnitDIEOnly();
const char *cu_name = NULL;
if (cu_die)
cu_name = cu_die.GetName();
const char *obj_file_name = NULL;
ObjectFile *obj_file = dwarf2Data->GetObjectFile();
if (obj_file)
obj_file_name =
obj_file->GetFileSpec().GetFilename().AsCString("<Unknown>");
const char *die_name = GetName(dwarf2Data, cu);
s.Printf("0x%8.8x/0x%8.8x: %-30s (from %s in %s)", cu->GetOffset(),
GetOffset(), die_name ? die_name : "", cu_name ? cu_name : "<NULL>",
obj_file_name ? obj_file_name : "<NULL>");
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// DumpAttribute // DumpAttribute
// //

View File

@ -167,19 +167,11 @@ public:
void Dump(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu, void Dump(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu,
lldb_private::Stream &s, uint32_t recurse_depth) const; lldb_private::Stream &s, uint32_t recurse_depth) const;
void DumpAncestry(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu,
const DWARFDebugInfoEntry *oldest, lldb_private::Stream &s,
uint32_t recurse_depth) const;
static void static void
DumpAttribute(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu, DumpAttribute(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu,
const lldb_private::DWARFDataExtractor &debug_info_data, const lldb_private::DWARFDataExtractor &debug_info_data,
lldb::offset_t *offset_ptr, lldb_private::Stream &s, lldb::offset_t *offset_ptr, lldb_private::Stream &s,
dw_attr_t attr, DWARFFormValue &form_value); dw_attr_t attr, DWARFFormValue &form_value);
// This one dumps the comp unit name, objfile name and die offset for this die
// so the stream S.
void DumpLocation(SymbolFileDWARF *dwarf2Data, DWARFUnit *cu,
lldb_private::Stream &s) const;
bool bool
GetDIENamesAndRanges(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu, GetDIENamesAndRanges(SymbolFileDWARF *dwarf2Data, const DWARFUnit *cu,

View File

@ -73,289 +73,6 @@ DWARFDebugLine::GetLineTable(const dw_offset_t offset) const {
return line_table_shared_ptr; return line_table_shared_ptr;
} }
//----------------------------------------------------------------------
// DumpStateToFile
//----------------------------------------------------------------------
static void DumpStateToFile(dw_offset_t offset,
const DWARFDebugLine::State &state,
void *userData) {
Log *log = (Log *)userData;
if (state.row == DWARFDebugLine::State::StartParsingLineTable) {
// If the row is zero we are being called with the prologue only
state.prologue->Dump(log);
log->PutCString("Address Line Column File");
log->PutCString("------------------ ------ ------ ------");
} else if (state.row == DWARFDebugLine::State::DoneParsingLineTable) {
// Done parsing line table
} else {
log->Printf("0x%16.16" PRIx64 " %6u %6u %6u%s\n", state.address, state.line,
state.column, state.file, state.end_sequence ? " END" : "");
}
}
//----------------------------------------------------------------------
// DWARFDebugLine::DumpLineTableRows
//----------------------------------------------------------------------
bool DWARFDebugLine::DumpLineTableRows(Log *log, SymbolFileDWARF *dwarf2Data,
dw_offset_t debug_line_offset) {
const DWARFDataExtractor &debug_line_data = dwarf2Data->get_debug_line_data();
if (debug_line_offset == DW_INVALID_OFFSET) {
// Dump line table to a single file only
debug_line_offset = 0;
while (debug_line_data.ValidOffset(debug_line_offset))
debug_line_offset =
DumpStatementTable(log, debug_line_data, debug_line_offset);
} else {
// Dump line table to a single file only
DumpStatementTable(log, debug_line_data, debug_line_offset);
}
return false;
}
//----------------------------------------------------------------------
// DWARFDebugLine::DumpStatementTable
//----------------------------------------------------------------------
dw_offset_t
DWARFDebugLine::DumpStatementTable(Log *log,
const DWARFDataExtractor &debug_line_data,
const dw_offset_t debug_line_offset) {
if (debug_line_data.ValidOffset(debug_line_offset)) {
lldb::offset_t offset = debug_line_offset;
log->Printf("--------------------------------------------------------------"
"--------\n"
"debug_line[0x%8.8x]\n"
"--------------------------------------------------------------"
"--------\n",
debug_line_offset);
if (ParseStatementTable(debug_line_data, &offset, DumpStateToFile, log, nullptr))
return offset;
else
return debug_line_offset + 1; // Skip to next byte in .debug_line section
}
return DW_INVALID_OFFSET;
}
//----------------------------------------------------------------------
// DumpOpcodes
//----------------------------------------------------------------------
bool DWARFDebugLine::DumpOpcodes(Log *log, SymbolFileDWARF *dwarf2Data,
dw_offset_t debug_line_offset,
uint32_t dump_flags) {
const DWARFDataExtractor &debug_line_data = dwarf2Data->get_debug_line_data();
if (debug_line_data.GetByteSize() == 0) {
log->Printf("< EMPTY >\n");
return false;
}
if (debug_line_offset == DW_INVALID_OFFSET) {
// Dump line table to a single file only
debug_line_offset = 0;
while (debug_line_data.ValidOffset(debug_line_offset))
debug_line_offset = DumpStatementOpcodes(log, debug_line_data,
debug_line_offset, dump_flags);
} else {
// Dump line table to a single file only
DumpStatementOpcodes(log, debug_line_data, debug_line_offset, dump_flags);
}
return false;
}
//----------------------------------------------------------------------
// DumpStatementOpcodes
//----------------------------------------------------------------------
dw_offset_t DWARFDebugLine::DumpStatementOpcodes(
Log *log, const DWARFDataExtractor &debug_line_data,
const dw_offset_t debug_line_offset, uint32_t flags) {
lldb::offset_t offset = debug_line_offset;
if (debug_line_data.ValidOffset(offset)) {
Prologue prologue;
if (ParsePrologue(debug_line_data, &offset, &prologue)) {
log->PutCString("--------------------------------------------------------"
"--------------");
log->Printf("debug_line[0x%8.8x]", debug_line_offset);
log->PutCString("--------------------------------------------------------"
"--------------\n");
prologue.Dump(log);
} else {
offset = debug_line_offset;
log->Printf("0x%8.8" PRIx64 ": skipping pad byte %2.2x", offset,
debug_line_data.GetU8(&offset));
return offset;
}
Row row(prologue.default_is_stmt);
const dw_offset_t end_offset = debug_line_offset + prologue.total_length +
sizeof(prologue.total_length);
assert(debug_line_data.ValidOffset(end_offset - 1));
while (offset < end_offset) {
const uint32_t op_offset = offset;
uint8_t opcode = debug_line_data.GetU8(&offset);
switch (opcode) {
case 0: // Extended Opcodes always start with a zero opcode followed by
{ // a uleb128 length so you can skip ones you don't know about
dw_offset_t ext_offset = offset;
dw_uleb128_t len = debug_line_data.GetULEB128(&offset);
dw_offset_t arg_size = len - (offset - ext_offset);
uint8_t sub_opcode = debug_line_data.GetU8(&offset);
// if (verbose)
// log->Printf( "Extended: <%u> %2.2x ", len,
// sub_opcode);
switch (sub_opcode) {
case DW_LNE_end_sequence:
log->Printf("0x%8.8x: DW_LNE_end_sequence", op_offset);
row.Dump(log);
row.Reset(prologue.default_is_stmt);
break;
case DW_LNE_set_address: {
row.address = debug_line_data.GetMaxU64(&offset, arg_size);
log->Printf("0x%8.8x: DW_LNE_set_address (0x%" PRIx64 ")", op_offset,
row.address);
} break;
case DW_LNE_define_file: {
FileNameEntry fileEntry;
fileEntry.name = debug_line_data.GetCStr(&offset);
fileEntry.dir_idx = debug_line_data.GetULEB128(&offset);
fileEntry.mod_time = debug_line_data.GetULEB128(&offset);
fileEntry.length = debug_line_data.GetULEB128(&offset);
log->Printf("0x%8.8x: DW_LNE_define_file('%s', dir=%i, "
"mod_time=0x%8.8x, length=%i )",
op_offset, fileEntry.name, fileEntry.dir_idx,
fileEntry.mod_time, fileEntry.length);
prologue.file_names.push_back(fileEntry);
} break;
case DW_LNE_set_discriminator: {
uint64_t discriminator = debug_line_data.GetULEB128(&offset);
log->Printf("0x%8.8x: DW_LNE_set_discriminator (0x%" PRIx64 ")",
op_offset, discriminator);
} break;
default:
log->Printf("0x%8.8x: DW_LNE_??? (%2.2x) - Skipping unknown upcode",
op_offset, opcode);
// Length doesn't include the zero opcode byte or the length itself,
// but it does include the sub_opcode, so we have to adjust for that
// below
offset += arg_size;
break;
}
} break;
// Standard Opcodes
case DW_LNS_copy:
log->Printf("0x%8.8x: DW_LNS_copy", op_offset);
row.Dump(log);
break;
case DW_LNS_advance_pc: {
dw_uleb128_t addr_offset_n = debug_line_data.GetULEB128(&offset);
dw_uleb128_t addr_offset = addr_offset_n * prologue.min_inst_length;
log->Printf("0x%8.8x: DW_LNS_advance_pc (0x%x)", op_offset,
addr_offset);
row.address += addr_offset;
} break;
case DW_LNS_advance_line: {
dw_sleb128_t line_offset = debug_line_data.GetSLEB128(&offset);
log->Printf("0x%8.8x: DW_LNS_advance_line (%i)", op_offset,
line_offset);
row.line += line_offset;
} break;
case DW_LNS_set_file:
row.file = debug_line_data.GetULEB128(&offset);
log->Printf("0x%8.8x: DW_LNS_set_file (%u)", op_offset, row.file);
break;
case DW_LNS_set_column:
row.column = debug_line_data.GetULEB128(&offset);
log->Printf("0x%8.8x: DW_LNS_set_column (%u)", op_offset, row.column);
break;
case DW_LNS_negate_stmt:
row.is_stmt = !row.is_stmt;
log->Printf("0x%8.8x: DW_LNS_negate_stmt", op_offset);
break;
case DW_LNS_set_basic_block:
row.basic_block = true;
log->Printf("0x%8.8x: DW_LNS_set_basic_block", op_offset);
break;
case DW_LNS_const_add_pc: {
uint8_t adjust_opcode = 255 - prologue.opcode_base;
dw_addr_t addr_offset =
(adjust_opcode / prologue.line_range) * prologue.min_inst_length;
log->Printf("0x%8.8x: DW_LNS_const_add_pc (0x%8.8" PRIx64 ")",
op_offset, addr_offset);
row.address += addr_offset;
} break;
case DW_LNS_fixed_advance_pc: {
uint16_t pc_offset = debug_line_data.GetU16(&offset);
log->Printf("0x%8.8x: DW_LNS_fixed_advance_pc (0x%4.4x)", op_offset,
pc_offset);
row.address += pc_offset;
} break;
case DW_LNS_set_prologue_end:
row.prologue_end = true;
log->Printf("0x%8.8x: DW_LNS_set_prologue_end", op_offset);
break;
case DW_LNS_set_epilogue_begin:
row.epilogue_begin = true;
log->Printf("0x%8.8x: DW_LNS_set_epilogue_begin", op_offset);
break;
case DW_LNS_set_isa:
row.isa = debug_line_data.GetULEB128(&offset);
log->Printf("0x%8.8x: DW_LNS_set_isa (%u)", op_offset, row.isa);
break;
// Special Opcodes
default:
if (opcode < prologue.opcode_base) {
// We have an opcode that this parser doesn't know about, skip the
// number of ULEB128 numbers that is says to skip in the prologue's
// standard_opcode_lengths array
uint8_t n = prologue.standard_opcode_lengths[opcode - 1];
log->Printf("0x%8.8x: Special : Unknown skipping %u ULEB128 values.",
op_offset, n);
while (n > 0) {
debug_line_data.GetULEB128(&offset);
--n;
}
} else {
uint8_t adjust_opcode = opcode - prologue.opcode_base;
dw_addr_t addr_offset =
(adjust_opcode / prologue.line_range) * prologue.min_inst_length;
int32_t line_offset =
prologue.line_base + (adjust_opcode % prologue.line_range);
log->Printf("0x%8.8x: address += 0x%" PRIx64 ", line += %i\n",
op_offset, (uint64_t)addr_offset, line_offset);
row.address += addr_offset;
row.line += line_offset;
row.Dump(log);
}
break;
}
}
return end_offset;
}
return DW_INVALID_OFFSET;
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Parse // Parse
// //
@ -974,26 +691,6 @@ bool DWARFDebugLine::Prologue::GetFile(uint32_t file_idx,
return false; return false;
} }
//----------------------------------------------------------------------
// DWARFDebugLine::LineTable::Dump
//----------------------------------------------------------------------
void DWARFDebugLine::LineTable::Dump(Log *log) const {
if (prologue.get())
prologue->Dump(log);
if (!rows.empty()) {
log->PutCString("Address Line Column File ISA Flags");
log->PutCString(
"------------------ ------ ------ ------ --- -------------");
Row::const_iterator pos = rows.begin();
Row::const_iterator end = rows.end();
while (pos != end) {
(*pos).Dump(log);
++pos;
}
}
}
void DWARFDebugLine::LineTable::AppendRow(const DWARFDebugLine::Row &state) { void DWARFDebugLine::LineTable::AppendRow(const DWARFDebugLine::Row &state) {
rows.push_back(state); rows.push_back(state);
} }
@ -1128,11 +825,6 @@ void DWARFDebugLine::Row::Insert(Row::collection &state_coll,
} }
} }
void DWARFDebugLine::Row::Dump(Log *log, const Row::collection &state_coll) {
std::for_each(state_coll.begin(), state_coll.end(),
bind2nd(std::mem_fun_ref(&Row::Dump), log));
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// DWARFDebugLine::State::State // DWARFDebugLine::State::State
//---------------------------------------------------------------------- //----------------------------------------------------------------------

View File

@ -115,7 +115,6 @@ public:
void Reset(bool default_is_stmt); void Reset(bool default_is_stmt);
void Dump(lldb_private::Log *log) const; void Dump(lldb_private::Log *log) const;
static void Insert(Row::collection &state_coll, const Row &state); static void Insert(Row::collection &state_coll, const Row &state);
static void Dump(lldb_private::Log *log, const Row::collection &state_coll);
dw_addr_t address; // The program-counter value corresponding to a machine dw_addr_t address; // The program-counter value corresponding to a machine
// instruction generated by the compiler. // instruction generated by the compiler.
@ -161,7 +160,6 @@ public:
} }
uint32_t LookupAddress(dw_addr_t address, dw_addr_t cu_high_pc) const; uint32_t LookupAddress(dw_addr_t address, dw_addr_t cu_high_pc) const;
void Dump(lldb_private::Log *log) const;
Prologue::shared_ptr prologue; Prologue::shared_ptr prologue;
Row::collection rows; Row::collection rows;
@ -197,14 +195,6 @@ public:
DISALLOW_COPY_AND_ASSIGN(State); DISALLOW_COPY_AND_ASSIGN(State);
}; };
static bool DumpOpcodes(
lldb_private::Log *log, SymbolFileDWARF *dwarf2Data,
dw_offset_t line_offset = DW_INVALID_OFFSET,
uint32_t dump_flags = 0); // If line_offset is invalid, dump everything
static bool DumpLineTableRows(
lldb_private::Log *log, SymbolFileDWARF *dwarf2Data,
dw_offset_t line_offset =
DW_INVALID_OFFSET); // If line_offset is invalid, dump everything
static bool static bool
ParseSupportFiles(const lldb::ModuleSP &module_sp, ParseSupportFiles(const lldb::ModuleSP &module_sp,
const lldb_private::DWARFDataExtractor &debug_line_data, const lldb_private::DWARFDataExtractor &debug_line_data,
@ -219,14 +209,6 @@ public:
ParseStatementTable(const lldb_private::DWARFDataExtractor &debug_line_data, ParseStatementTable(const lldb_private::DWARFDataExtractor &debug_line_data,
lldb::offset_t *offset_ptr, State::Callback callback, lldb::offset_t *offset_ptr, State::Callback callback,
void *userData, DWARFUnit *dwarf_cu); void *userData, DWARFUnit *dwarf_cu);
static dw_offset_t
DumpStatementTable(lldb_private::Log *log,
const lldb_private::DWARFDataExtractor &debug_line_data,
const dw_offset_t line_offset);
static dw_offset_t
DumpStatementOpcodes(lldb_private::Log *log,
const lldb_private::DWARFDataExtractor &debug_line_data,
const dw_offset_t line_offset, uint32_t flags);
static bool static bool
ParseStatementTable(const lldb_private::DWARFDataExtractor &debug_line_data, ParseStatementTable(const lldb_private::DWARFDataExtractor &debug_line_data,
lldb::offset_t *offset_ptr, LineTable *line_table, lldb::offset_t *offset_ptr, LineTable *line_table,

View File

@ -1,38 +0,0 @@
//===-- DWARFDebugMacinfo.cpp -----------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "DWARFDebugMacinfo.h"
#include "DWARFDebugMacinfoEntry.h"
#include "SymbolFileDWARF.h"
#include "lldb/Utility/Stream.h"
using namespace lldb_private;
using namespace std;
DWARFDebugMacinfo::DWARFDebugMacinfo() {}
DWARFDebugMacinfo::~DWARFDebugMacinfo() {}
void DWARFDebugMacinfo::Dump(Stream *s, const DWARFDataExtractor &macinfo_data,
lldb::offset_t offset) {
DWARFDebugMacinfoEntry maninfo_entry;
if (macinfo_data.GetByteSize() == 0) {
s->PutCString("< EMPTY >\n");
return;
}
if (offset == LLDB_INVALID_OFFSET) {
offset = 0;
while (maninfo_entry.Extract(macinfo_data, &offset))
maninfo_entry.Dump(s);
} else {
if (maninfo_entry.Extract(macinfo_data, &offset))
maninfo_entry.Dump(s);
}
}

View File

@ -1,25 +0,0 @@
//===-- DWARFDebugMacinfo.h -------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef SymbolFileDWARF_DWARFDebugMacinfo_h_
#define SymbolFileDWARF_DWARFDebugMacinfo_h_
#include "SymbolFileDWARF.h"
class DWARFDebugMacinfo {
public:
DWARFDebugMacinfo();
~DWARFDebugMacinfo();
static void Dump(lldb_private::Stream *s,
const lldb_private::DWARFDataExtractor &macinfo_data,
lldb::offset_t offset = LLDB_INVALID_OFFSET);
};
#endif // SymbolFileDWARF_DWARFDebugMacinfo_h_

View File

@ -1,110 +0,0 @@
//===-- DWARFDebugMacinfoEntry.cpp ------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "DWARFDebugMacinfoEntry.h"
#include "lldb/Utility/Stream.h"
using namespace lldb_private;
using namespace std;
DWARFDebugMacinfoEntry::DWARFDebugMacinfoEntry()
: m_type_code(0), m_line(0), m_op2() {
m_op2.cstr = NULL;
}
DWARFDebugMacinfoEntry::~DWARFDebugMacinfoEntry() {}
const char *DWARFDebugMacinfoEntry::GetCString() const {
switch (m_type_code) {
case 0:
case DW_MACINFO_start_file:
case DW_MACINFO_end_file:
return NULL;
default:
break;
}
return m_op2.cstr;
}
void DWARFDebugMacinfoEntry::Dump(Stream *s) const {
if (m_type_code) {
s->PutCString(DW_MACINFO_value_to_name(m_type_code));
switch (m_type_code) {
case DW_MACINFO_define:
s->Printf(" line:%u #define %s\n", (uint32_t)m_line, m_op2.cstr);
break;
case DW_MACINFO_undef:
s->Printf(" line:%u #undef %s\n", (uint32_t)m_line, m_op2.cstr);
break;
default:
s->Printf(" line:%u str: '%s'\n", (uint32_t)m_line, m_op2.cstr);
break;
case DW_MACINFO_start_file:
s->Printf(" line:%u file index: '%u'\n", (uint32_t)m_line,
(uint32_t)m_op2.file_idx);
break;
case DW_MACINFO_end_file:
break;
}
} else {
s->PutCString(" END\n");
}
}
bool DWARFDebugMacinfoEntry::Extract(const DWARFDataExtractor &mac_info_data,
lldb::offset_t *offset_ptr) {
if (mac_info_data.ValidOffset(*offset_ptr)) {
m_type_code = mac_info_data.GetU8(offset_ptr);
switch (m_type_code) {
case DW_MACINFO_define:
case DW_MACINFO_undef:
// 2 operands:
// Arg 1: operand encodes the line number of the source line on which
// the relevant defining or undefining pre-processor directives
// appeared.
m_line = mac_info_data.GetULEB128(offset_ptr);
// Arg 2: define string
m_op2.cstr = mac_info_data.GetCStr(offset_ptr);
break;
case DW_MACINFO_start_file:
// 2 operands:
// Op 1: line number of the source line on which the inclusion
// pre-processor directive occurred.
m_line = mac_info_data.GetULEB128(offset_ptr);
// Op 2: a source file name index to a file number in the statement
// information table for the relevant compilation unit.
m_op2.file_idx = mac_info_data.GetULEB128(offset_ptr);
break;
case 0: // End of list
case DW_MACINFO_end_file:
// No operands
m_line = DW_INVALID_OFFSET;
m_op2.cstr = NULL;
break;
default:
// Vendor specific entries always have a ULEB128 and a string
m_line = mac_info_data.GetULEB128(offset_ptr);
m_op2.cstr = mac_info_data.GetCStr(offset_ptr);
break;
}
return true;
} else
m_type_code = 0;
return false;
}

View File

@ -1,41 +0,0 @@
//===-- DWARFDebugMacinfoEntry.h --------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef SymbolFileDWARF_DWARFDebugMacinfoEntry_h_
#define SymbolFileDWARF_DWARFDebugMacinfoEntry_h_
#include "SymbolFileDWARF.h"
class DWARFDebugMacinfoEntry {
public:
DWARFDebugMacinfoEntry();
~DWARFDebugMacinfoEntry();
uint8_t TypeCode() const { return m_type_code; }
uint8_t GetLineNumber() const { return m_line; }
void Dump(lldb_private::Stream *s) const;
const char *GetCString() const;
bool Extract(const lldb_private::DWARFDataExtractor &mac_info_data,
lldb::offset_t *offset_ptr);
protected:
private:
uint8_t m_type_code;
dw_uleb128_t m_line;
union {
dw_uleb128_t file_idx;
const char *cstr;
} m_op2;
};
#endif // SymbolFileDWARF_DWARFDebugMacinfoEntry_h_

View File

@ -411,17 +411,6 @@ const char *DW_VIS_value_to_name(uint32_t val) {
return llvmstr.data(); return llvmstr.data();
} }
const char *DW_VIRTUALITY_value_to_name(uint32_t val) {
static char invalid[100];
llvm::StringRef llvmstr = llvm::dwarf::VirtualityString(val);
if (llvmstr.empty()) {
snprintf(invalid, sizeof(invalid), "Unknown DW_VIRTUALITY constant: 0x%x",
val);
return invalid;
}
return llvmstr.data();
}
const char *DW_LANG_value_to_name(uint32_t val) { const char *DW_LANG_value_to_name(uint32_t val) {
static char invalid[100]; static char invalid[100];
llvm::StringRef llvmstr = llvm::dwarf::LanguageString(val); llvm::StringRef llvmstr = llvm::dwarf::LanguageString(val);

View File

@ -47,8 +47,6 @@ const char *DW_ACCESS_value_to_name(uint32_t val);
const char *DW_VIS_value_to_name(uint32_t val); const char *DW_VIS_value_to_name(uint32_t val);
const char *DW_VIRTUALITY_value_to_name(uint32_t val);
const char *DW_LANG_value_to_name(uint32_t val); const char *DW_LANG_value_to_name(uint32_t val);
const char *DW_ID_value_to_name(uint32_t val); const char *DW_ID_value_to_name(uint32_t val);

View File

@ -304,49 +304,6 @@ bool DWARFMappedHash::Header::Read(const lldb_private::DWARFDataExtractor &data,
return true; return true;
} }
void DWARFMappedHash::Header::Dump(lldb_private::Stream &strm,
const DIEInfo &hash_data) const {
const size_t num_atoms = header_data.atoms.size();
for (size_t i = 0; i < num_atoms; ++i) {
if (i > 0)
strm.PutCString(", ");
DWARFFormValue form_value(NULL, header_data.atoms[i].form);
switch (header_data.atoms[i].type) {
case eAtomTypeDIEOffset: // DIE offset, check form for encoding
strm.Printf("{0x%8.8x}", hash_data.offset);
break;
case eAtomTypeTag: // DW_TAG value for the DIE
{
const char *tag_cstr = lldb_private::DW_TAG_value_to_name(hash_data.tag);
if (tag_cstr)
strm.PutCString(tag_cstr);
else
strm.Printf("DW_TAG_(0x%4.4x)", hash_data.tag);
} break;
case eAtomTypeTypeFlags: // Flags from enum TypeFlags
strm.Printf("0x%2.2x", hash_data.type_flags);
if (hash_data.type_flags) {
strm.PutCString(" (");
if (hash_data.type_flags & eTypeFlagClassIsImplementation)
strm.PutCString(" implementation");
strm.PutCString(" )");
}
break;
case eAtomTypeQualNameHash: // Flags from enum TypeFlags
strm.Printf("0x%8.8x", hash_data.qualified_name_hash);
break;
default:
strm.Printf("AtomType(0x%x)", header_data.atoms[i].type);
break;
}
}
}
DWARFMappedHash::MemoryTable::MemoryTable( DWARFMappedHash::MemoryTable::MemoryTable(
lldb_private::DWARFDataExtractor &table_data, lldb_private::DWARFDataExtractor &table_data,
const lldb_private::DWARFDataExtractor &string_table, const char *name) const lldb_private::DWARFDataExtractor &string_table, const char *name)

View File

@ -104,8 +104,6 @@ public:
bool Read(const lldb_private::DWARFDataExtractor &data, bool Read(const lldb_private::DWARFDataExtractor &data,
lldb::offset_t *offset_ptr, DIEInfo &hash_data) const; lldb::offset_t *offset_ptr, DIEInfo &hash_data) const;
void Dump(lldb_private::Stream &strm, const DIEInfo &hash_data) const;
}; };
// A class for reading and using a saved hash table from a block of data // A class for reading and using a saved hash table from a block of data