https://bugs.kde.org/show_bug.cgi?id=372120

Mark Wielaard <m...@redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |m...@redhat.com

--- Comment #1 from Mark Wielaard <m...@redhat.com> ---
Yeah, I think it would be a good idea to at least recognize the
default (gnu_v3) style c++ mangling, which always starts with _Z.
Something like the following should work:

diff --git a/coregrind/m_demangle/demangle.c b/coregrind/m_demangle/demangle.c
index 23c4a02..c8a9ca5 100644
--- a/coregrind/m_demangle/demangle.c
+++ b/coregrind/m_demangle/demangle.c
@@ -141,7 +141,8 @@ void VG_(demangle) ( Bool do_cxx_demangling, Bool
do_z_demangling,
    }

    /* Possibly undo (1) */
-   if (do_cxx_demangling && VG_(clo_demangle)) {
+   if (do_cxx_demangling && VG_(clo_demangle)
+       && orig[0] == '_' && orig[1] == 'Z') {
       /* !!! vvv STATIC vvv !!! */
       static HChar* demangled = NULL;
       /* !!! ^^^ STATIC ^^^ !!! */

Then on top of that it might be good to try to detect the language
from the debuginfo CU DW_AT_language. If we have some language
detection/guessing we can explicitly set it with cplus_demangle_set_style (enum
demangling_styles style) (but beware that this is a global/static, so not
thread-safe - which might not be an issue currently in this context).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to