From 0be4dd25ffd6b0308053d9b5c34987d1452b01a7 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Mon, 29 Apr 2024 20:25:31 -0400 Subject: Use LLVM demangler as a fallback for GNU and MS demanglers --- view/pe/peview.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'view/pe/peview.cpp') diff --git a/view/pe/peview.cpp b/view/pe/peview.cpp index 19cf7e09..f9f2b77e 100644 --- a/view/pe/peview.cpp +++ b/view/pe/peview.cpp @@ -2785,6 +2785,10 @@ void PEView::AddPESymbol(BNSymbolType type, const string& dll, const string& nam if (!typeRef && m_extractMangledTypes && !GetDefaultPlatform()->GetFunctionByName(rawName)) typeRef = demangledType; } + else if (!m_extractMangledTypes && DemangleLLVM(rawName, demangleName, m_simplifyTemplates)) { + shortName = demangleName.GetString(); + fullName = shortName; + } else { m_logger->LogDebug("Failed to demangle: '%s'\n", name.c_str()); @@ -2801,6 +2805,10 @@ void PEView::AddPESymbol(BNSymbolType type, const string& dll, const string& nam if (!typeRef && m_extractMangledTypes && !GetDefaultPlatform()->GetFunctionByName(rawName)) typeRef = demangledType; } + else if (!m_extractMangledTypes && DemangleLLVM(rawName, demangleName, m_simplifyTemplates)) { + shortName = demangleName.GetString(); + fullName = shortName; + } else { m_logger->LogDebug("Failed to demangle name: '%s'\n", rawName.c_str()); -- cgit v1.3.1