From 3b11679508ba722c1cc6df56327472589a9f591f Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Thu, 25 Jun 2009 07:58:51 +0000 Subject: [PATCH] Add gcc2 demangling. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31233 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/debugger/demangler/Demangler.cpp | 10 ++++++++-- src/apps/debugger/demangler/Jamfile | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/apps/debugger/demangler/Demangler.cpp b/src/apps/debugger/demangler/Demangler.cpp index c547ed7714..e6dc1f8c32 100644 --- a/src/apps/debugger/demangler/Demangler.cpp +++ b/src/apps/debugger/demangler/Demangler.cpp @@ -12,14 +12,20 @@ Demangler::Demangle(const BString& mangledName) { char buffer[1024]; + const char* demangled; + if (mangledName.Compare("_Z", 2) == 0) { - const char* demangled = demangle_name_gcc3(mangledName.String(), buffer, + demangled = demangle_name_gcc3(mangledName.String(), buffer, sizeof(buffer)); if (demangled != NULL) return demangled; } - // TODO: gcc2 demangling! + // fallback is gcc2 + demangled = demangle_symbol_gcc2(mangledName.String(), buffer, + sizeof(buffer), NULL); + if (demangled != NULL) + return demangled; return mangledName; } diff --git a/src/apps/debugger/demangler/Jamfile b/src/apps/debugger/demangler/Jamfile index 8eb47bb6c0..dfe049c047 100644 --- a/src/apps/debugger/demangler/Jamfile +++ b/src/apps/debugger/demangler/Jamfile @@ -13,5 +13,6 @@ MergeObject Debugger_demangler.o : Demangler.cpp + gcc2.cpp gcc3+.cpp ;