]> granicus.if.org Git - strace/commitdiff
unwind: demangle function arguments
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 29 Dec 2017 17:59:29 +0000 (17:59 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 29 Dec 2017 17:59:29 +0000 (17:59 +0000)
* unwind.c (print_stack_frame): Specify demangling style.
* tests/strace-k.test (result): Update regexp.
* tests/strace-k-demangle.test (expected): Update expected output.

tests/strace-k-demangle.test
tests/strace-k.test
unwind.c

index d68b1a01058523b5111e2c4a2191847d99e1b38b..1616449f1fde52c3e2d31f34f8b25c0bc8c0c190 100755 (executable)
@@ -2,6 +2,6 @@
 # Check strace -k symbol names demangling.
 
 test_prog=../stack-fcall-mangled
-expected='getpid ns::f3 ns::f2 ns::f1 ns::f0 main '
+expected='getpid ns::f3(int) ns::f2(int) ns::f1(int) ns::f0(int) main '
 
 . "${srcdir=.}"/strace-k.test
index 9d8934dd7387cdfbdd23290118b500bfcbcac5dc..2a21a9db467d70072051bafb831e5e7a1007ddd0 100755 (executable)
@@ -44,7 +44,7 @@ check_prog tr
 run_prog "$test_prog"
 run_strace -e getpid -k $args
 
-result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^.*\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
        tr '\n' ' ')
 
 test "$result" = "$expected" || {
index 3a66c3fc0c29a0b4c1515ec68c7e063feb438b66..181123cce02af65cabfbd438751fb96fb91cc4ad 100644 (file)
--- a/unwind.c
+++ b/unwind.c
@@ -322,7 +322,9 @@ print_stack_frame(struct tcb *tcp,
                                cur_mmap_cache->mmap_offset;
 
 #ifdef USE_DEMANGLE
-                       char *demangled_name = cplus_demangle(*symbol_name, 0);
+                       char *demangled_name =
+                               cplus_demangle(*symbol_name,
+                                              DMGL_AUTO | DMGL_PARAMS);
 #endif
 
                        call_action(data,