diff options
| author | Jan Kratochvil <[email protected]> | 2014-01-15 21:16:57 +0100 |
|---|---|---|
| committer | Jan Kratochvil <[email protected]> | 2014-01-15 21:16:57 +0100 |
| commit | 7c6e785e6eca774080a64801f950bd61785c469e (patch) | |
| tree | 4429967bfda9c63803a4180d5e52f91a731fb6f4 /src/stack.c | |
| parent | e922ec4e3bcd7c164a9ce424accac4394e7d5afd (diff) | |
Fix corruption of non-C++ symbols by the demangler.
Signed-off-by: Jan Kratochvil <[email protected]>
Diffstat (limited to 'src/stack.c')
| -rw-r--r-- | src/stack.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/stack.c b/src/stack.c index fdf4b074..275be08c 100644 --- a/src/stack.c +++ b/src/stack.c @@ -1,5 +1,5 @@ /* Unwinding of frames like gstack/pstack. - Copyright (C) 2013 Red Hat, Inc. + Copyright (C) 2013-2014 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -220,7 +220,8 @@ print_frames (struct frames *frames, pid_t tid, int dwflerr, const char *what) if (symname != NULL) { #ifdef USE_DEMANGLE - if (! show_raw) + // Require GNU v3 ABI by the "_Z" prefix. + if (! show_raw && symname[0] == '_' && symname[1] == 'Z') { int status = -1; char *dsymname = __cxa_demangle (symname, demangle_buffer, |
