Cleaned up the output of "image lookup --address <ADDR>" which involved
cleaning up the output of many GetDescription objects that are part of a
symbol context. This fixes an issue where no ranges were being printed out
for functions, blocks and symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113571 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/Symbol.cpp b/source/Symbol/Symbol.cpp
index 7ea7193..8b15536 100644
--- a/source/Symbol/Symbol.cpp
+++ b/source/Symbol/Symbol.cpp
@@ -175,19 +175,29 @@
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());
}
}
}