diff options
Diffstat (limited to 'source/Symbol/Symbol.cpp')
-rw-r--r-- | source/Symbol/Symbol.cpp | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/source/Symbol/Symbol.cpp b/source/Symbol/Symbol.cpp index dff15dd..5884fca 100644 --- a/source/Symbol/Symbol.cpp +++ b/source/Symbol/Symbol.cpp @@ -185,6 +185,14 @@ Symbol::ValueIsAddress() const } ConstString +Symbol::GetDisplayName () const +{ + if (!m_mangled) + return ConstString(); + return m_mangled.GetDisplayDemangledName(GetLanguage()); +} + +ConstString Symbol::GetReExportedSymbolName() const { if (m_type == eSymbolTypeReExported) @@ -288,8 +296,9 @@ Symbol::GetDescription (Stream *s, lldb::DescriptionLevel level, Target *target) else s->Printf (", value = 0x%16.16" PRIx64, m_addr_range.GetBaseAddress().GetOffset()); } - if (m_mangled.GetDemangledName()) - s->Printf(", name=\"%s\"", m_mangled.GetDemangledName().AsCString()); + ConstString demangled = m_mangled.GetDemangledName(GetLanguage()); + if (demangled) + s->Printf(", name=\"%s\"", demangled.AsCString()); if (m_mangled.GetMangledName()) s->Printf(", mangled=\"%s\"", m_mangled.GetMangledName().AsCString()); @@ -309,6 +318,7 @@ Symbol::Dump(Stream *s, Target *target, uint32_t index) const // Make sure the size of the symbol is up to date before dumping GetByteSize(); + ConstString name = m_mangled.GetName(GetLanguage()); if (ValueIsAddress()) { if (!m_addr_range.GetBaseAddress().Dump(s, nullptr, Address::DumpStyleFileAddress)) @@ -325,13 +335,13 @@ Symbol::Dump(Stream *s, Target *target, uint32_t index) const s->Printf( format, GetByteSize(), m_flags, - m_mangled.GetName().AsCString("")); + name.AsCString("")); } else if (m_type == eSymbolTypeReExported) { s->Printf (" 0x%8.8x %s", m_flags, - m_mangled.GetName().AsCString("")); + name.AsCString("")); ConstString reexport_name = GetReExportedSymbolName(); intptr_t shlib = m_addr_range.GetByteSize(); @@ -349,7 +359,7 @@ Symbol::Dump(Stream *s, Target *target, uint32_t index) const m_addr_range.GetBaseAddress().GetOffset(), GetByteSize(), m_flags, - m_mangled.GetName().AsCString("")); + name.AsCString("")); } } @@ -439,7 +449,7 @@ bool Symbol::Compare(const ConstString& name, SymbolType type) const { if (type == eSymbolTypeAny || m_type == type) - return m_mangled.GetMangledName() == name || m_mangled.GetDemangledName() == name; + return m_mangled.GetMangledName() == name || m_mangled.GetDemangledName(GetLanguage()) == name; return false; } @@ -635,6 +645,18 @@ Symbol::GetLoadAddress (Target *target) const return LLDB_INVALID_ADDRESS; } +ConstString +Symbol::GetName () const +{ + return m_mangled.GetName(GetLanguage()); +} + +ConstString +Symbol::GetNameNoArguments () const +{ + return m_mangled.GetName(GetLanguage(), Mangled::ePreferDemangledWithoutArguments); +} + lldb::addr_t Symbol::ResolveCallableAddress(Target &target) const |