diff options
Diffstat (limited to 'lldb/source')
-rw-r--r-- | lldb/source/Core/Address.cpp | 22 | ||||
-rw-r--r-- | lldb/source/Core/AddressRange.cpp | 16 | ||||
-rw-r--r-- | lldb/source/Symbol/Block.cpp | 5 | ||||
-rw-r--r-- | lldb/source/Symbol/CompileUnit.cpp | 7 | ||||
-rw-r--r-- | lldb/source/Symbol/Function.cpp | 12 | ||||
-rw-r--r-- | lldb/source/Symbol/LineEntry.cpp | 7 | ||||
-rw-r--r-- | lldb/source/Symbol/Symbol.cpp | 22 | ||||
-rw-r--r-- | lldb/source/Symbol/SymbolContext.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Symbol/Type.cpp | 15 |
9 files changed, 65 insertions, 47 deletions
diff --git a/lldb/source/Core/Address.cpp b/lldb/source/Core/Address.cpp index 042ce2df4bd..98b56355517 100644 --- a/lldb/source/Core/Address.cpp +++ b/lldb/source/Core/Address.cpp @@ -381,7 +381,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum addr_size = sizeof(addr_t); } - lldb_private::Address so_addr; + Address so_addr; switch (style) { case DumpStyleInvalid: @@ -448,7 +448,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum } uint32_t pointer_size = 4; - lldb_private::Module *module = GetModule(); + Module *module = GetModule(); if (process) pointer_size = process->GetAddressByteSize(); else if (module) @@ -488,7 +488,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum { if (target && so_addr.IsSectionOffset()) { - lldb_private::SymbolContext func_sc; + SymbolContext func_sc; target->GetImages().ResolveSymbolContextForAddress (so_addr, eSymbolContextEverything, func_sc); @@ -577,7 +577,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum showed_info = true; if (so_addr.IsSectionOffset()) { - lldb_private::SymbolContext pointer_sc; + SymbolContext pointer_sc; if (target) { target->GetImages().ResolveSymbolContextForAddress (so_addr, @@ -603,7 +603,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum { if (module) { - lldb_private::SymbolContext sc; + SymbolContext sc; module->ResolveSymbolContextForAddress(*this, eSymbolContextEverything, sc); if (sc.function || sc.symbol) { @@ -656,18 +656,10 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum case DumpStyleDetailedSymbolContext: if (IsSectionOffset()) { - lldb::AddressType addr_type = eAddressTypeLoad; - addr_t addr = GetLoadAddress (process); - if (addr == LLDB_INVALID_ADDRESS) - { - addr = GetFileAddress(); - addr_type = eAddressTypeFile; - } - - lldb_private::Module *module = GetModule(); + Module *module = GetModule(); if (module) { - lldb_private::SymbolContext sc; + SymbolContext sc; module->ResolveSymbolContextForAddress(*this, eSymbolContextEverything, sc); if (sc.symbol) { diff --git a/lldb/source/Core/AddressRange.cpp b/lldb/source/Core/AddressRange.cpp index 47b957aca0a..d84a4e8dfa3 100644 --- a/lldb/source/Core/AddressRange.cpp +++ b/lldb/source/Core/AddressRange.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// #include "lldb/Core/AddressRange.h" +#include "lldb/Core/Module.h" #include "lldb/Core/Stream.h" #include "lldb/Target/Process.h" @@ -144,11 +145,11 @@ AddressRange::Dump(Stream *s, Process *process, Address::DumpStyle style, Addres if (process) addr_size = process->GetAddressByteSize (); + bool show_module = false; switch (style) { default: break; - case Address::DumpStyleSectionNameOffset: case Address::DumpStyleSectionPointerOffset: s->PutChar ('['); @@ -159,6 +160,9 @@ AddressRange::Dump(Stream *s, Process *process, Address::DumpStyle style, Addres return true; break; + case Address::DumpStyleModuleWithFileAddress: + show_module = true; + // fall through case Address::DumpStyleFileAddress: vmaddr = m_base_addr.GetFileAddress(); break; @@ -170,9 +174,19 @@ AddressRange::Dump(Stream *s, Process *process, Address::DumpStyle style, Addres if (vmaddr != LLDB_INVALID_ADDRESS) { + if (show_module) + { + Module *module = GetBaseAddress().GetModule(); + if (module) + s->Printf("%s", module->GetFileSpec().GetFilename().AsCString()); + } s->AddressRange(vmaddr, vmaddr + GetByteSize(), addr_size); return true; } + else if (fallback_style != Address::DumpStyleInvalid) + { + return Dump(s, process, fallback_style, Address::DumpStyleInvalid); + } return false; } diff --git a/lldb/source/Symbol/Block.cpp b/lldb/source/Symbol/Block.cpp index a1de78a1f30..a6e7f8f7e9a 100644 --- a/lldb/source/Symbol/Block.cpp +++ b/lldb/source/Symbol/Block.cpp @@ -38,6 +38,8 @@ Block::~Block () void Block::GetDescription(Stream *s, Function *function, lldb::DescriptionLevel level, Process *process) const { + *s << "id = " << ((const UserID&)*this); + size_t num_ranges = m_ranges.size(); if (num_ranges) { @@ -48,12 +50,11 @@ Block::GetDescription(Stream *s, Function *function, lldb::DescriptionLevel leve if (base_addr == LLDB_INVALID_ADDRESS) base_addr = function->GetAddressRange().GetBaseAddress().GetFileAddress(); - s->Printf("range%s = ", num_ranges > 1 ? "s" : ""); + s->Printf(", range%s = ", num_ranges > 1 ? "s" : ""); std::vector<VMRange>::const_iterator pos, end = m_ranges.end(); for (pos = m_ranges.begin(); pos != end; ++pos) pos->Dump(s, base_addr, 4); } - *s << ", id = " << ((const UserID&)*this); if (m_inlineInfoSP.get() != NULL) m_inlineInfoSP->Dump(s); diff --git a/lldb/source/Symbol/CompileUnit.cpp b/lldb/source/Symbol/CompileUnit.cpp index eaf12110a0f..3665f5b8f47 100644 --- a/lldb/source/Symbol/CompileUnit.cpp +++ b/lldb/source/Symbol/CompileUnit.cpp @@ -68,8 +68,7 @@ CompileUnit::DumpSymbolContext(Stream *s) void CompileUnit::GetDescription(Stream *s, lldb::DescriptionLevel level) const { - *s << '"' << (const FileSpec&)*this << "\", id = " << (const UserID&)*this - << ", language = " << (const Language&)*this; + *s << "id = " << (const UserID&)*this << ", file = \"" << (const FileSpec&)*this << "\", language = \"" << (const Language&)*this << '"'; } @@ -85,8 +84,8 @@ CompileUnit::Dump(Stream *s, bool show_context) const s->Printf("%.*p: ", (int)sizeof(void*) * 2, this); s->Indent(); *s << "CompileUnit" << (const UserID&)*this - << ", language = " << (const Language&)*this - << ", file='" << (const FileSpec&)*this << "'\n"; + << ", language = \"" << (const Language&)*this + << "\", file = '" << (const FileSpec&)*this << "'\n"; // m_types.Dump(s); diff --git a/lldb/source/Symbol/Function.cpp b/lldb/source/Symbol/Function.cpp index 5f9adbbbe12..43a668fc35a 100644 --- a/lldb/source/Symbol/Function.cpp +++ b/lldb/source/Symbol/Function.cpp @@ -18,6 +18,7 @@ #include "clang/AST/Type.h" #include "clang/AST/CanonicalType.h" +using namespace lldb; using namespace lldb_private; //---------------------------------------------------------------------- @@ -328,9 +329,14 @@ void Function::GetDescription(Stream *s, lldb::DescriptionLevel level, Process *process) { Type* func_type = GetType(); - *s << '"' << func_type->GetName() << "\", id = " << (const UserID&)*this; - *s << ", range = "; - GetAddressRange().Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleModuleWithFileAddress); + *s << "id = " << (const UserID&)*this << ", name = \"" << func_type->GetName() << "\", range = "; + + Address::DumpStyle fallback_style; + if (level == eDescriptionLevelVerbose) + fallback_style = Address::DumpStyleModuleWithFileAddress; + else + fallback_style = Address::DumpStyleFileAddress; + GetAddressRange().Dump(s, process, Address::DumpStyleLoadAddress, fallback_style); } void diff --git a/lldb/source/Symbol/LineEntry.cpp b/lldb/source/Symbol/LineEntry.cpp index 5d9b27ecf9a..88805924866 100644 --- a/lldb/source/Symbol/LineEntry.cpp +++ b/lldb/source/Symbol/LineEntry.cpp @@ -151,20 +151,16 @@ LineEntry::GetDescription (Stream *s, lldb::DescriptionLevel level, CompileUnit* if (level == lldb::eDescriptionLevelBrief || level == lldb::eDescriptionLevelFull) { - // Show address only if (show_address_only) { - s->PutCString ("address = "); range.GetBaseAddress().Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleFileAddress); } else { - s->PutCString ("range = "); range.Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleFileAddress); } - if (file) - *s << ' ' << file; + *s << ": " << file; if (line) { @@ -173,6 +169,7 @@ LineEntry::GetDescription (Stream *s, lldb::DescriptionLevel level, CompileUnit* s->Printf(":%u", column); } + if (level == lldb::eDescriptionLevelFull) { if (is_start_of_statement) diff --git a/lldb/source/Symbol/Symbol.cpp b/lldb/source/Symbol/Symbol.cpp index 7ea719300bb..8b1553644b9 100644 --- a/lldb/source/Symbol/Symbol.cpp +++ b/lldb/source/Symbol/Symbol.cpp @@ -175,19 +175,29 @@ Symbol::IsTrampoline () const void Symbol::GetDescription (Stream *s, lldb::DescriptionLevel level, Process *process) const { - *s << '"' << m_mangled.GetName() << "\", id = " << (const UserID&)*this; + *s << "id = " << (const UserID&)*this << ", name = \"" << m_mangled.GetName() << '"'; const Section *section = m_addr_range.GetBaseAddress().GetSection(); if (section != NULL) { - if (m_addr_range.GetByteSize() > 0) + if (m_addr_range.GetBaseAddress().IsSectionOffset()) { - s->PutCString(", range = "); - m_addr_range.Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleModuleWithFileAddress); + if (m_addr_range.GetByteSize() > 0) + { + s->PutCString (", range = "); + m_addr_range.Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleFileAddress); + } + else + { + s->PutCString (", address = "); + m_addr_range.GetBaseAddress().Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleFileAddress); + } } else { - s->PutCString(", address = "); - m_addr_range.GetBaseAddress().Dump(s, process, Address::DumpStyleLoadAddress, Address::DumpStyleModuleWithFileAddress); + if (m_size_is_sibling) + s->Printf (", sibling = %5llu", m_addr_range.GetBaseAddress().GetOffset()); + else + s->Printf (", value = 0x%16.16llx", m_addr_range.GetBaseAddress().GetOffset()); } } } diff --git a/lldb/source/Symbol/SymbolContext.cpp b/lldb/source/Symbol/SymbolContext.cpp index 51178fc38ec..d70976c5cd4 100644 --- a/lldb/source/Symbol/SymbolContext.cpp +++ b/lldb/source/Symbol/SymbolContext.cpp @@ -198,9 +198,11 @@ SymbolContext::GetDescription(Stream *s, lldb::DescriptionLevel level, Process * { if (module_sp) { - s->Indent(" Module: \""); + s->Indent(" Module: file = \""); module_sp->GetFileSpec().Dump(s); - s->PutChar('"'); + *s << '"'; + if (module_sp->GetArchitecture().IsValid()) + s->Printf (", arch = \"%s\"", module_sp->GetArchitecture().AsCString()); s->EOL(); } diff --git a/lldb/source/Symbol/Type.cpp b/lldb/source/Symbol/Type.cpp index 7791a969010..886367f7ed1 100644 --- a/lldb/source/Symbol/Type.cpp +++ b/lldb/source/Symbol/Type.cpp @@ -85,14 +85,11 @@ lldb_private::Type::operator= (const Type& rhs) void lldb_private::Type::GetDescription (Stream *s, lldb::DescriptionLevel level, bool show_name) { - if (show_name) - { - if (m_name) - *s << '\"' << m_name << "\", "; - } - *s << "id = " << (const UserID&)*this; + if (show_name && m_name) + *s << ", name = \"" << m_name << '"'; + if (m_byte_size != 0) s->Printf(", byte-size = %zu", m_byte_size); @@ -100,9 +97,9 @@ lldb_private::Type::GetDescription (Stream *s, lldb::DescriptionLevel level, boo if (m_clang_qual_type) { - *s << ", clang_type = " << m_clang_qual_type << ' '; - + *s << ", clang_type = \""; ClangASTType::DumpTypeDescription (GetClangAST(), m_clang_qual_type, s); + *s << '"'; } else if (m_encoding_uid != LLDB_INVALID_UID) { @@ -118,7 +115,7 @@ lldb_private::Type::GetDescription (Stream *s, lldb::DescriptionLevel level, boo case eLValueReferenceToTypeWithUID: s->PutCString(" (unresolved L value reference)"); break; case eRValueReferenceToTypeWithUID: s->PutCString(" (unresolved R value reference)"); break; } - } + } } |