]> granicus.if.org Git - strace/blobdiff - signal.c
tests: extend printstr test
[strace] / signal.c
index 40e8accf2704f9e318054833e0aa6cf9c35cb8ae..79054c709e44ced129c49f32417f9c97ff9fc4f5 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -350,7 +350,7 @@ decode_old_sigaction(struct tcb *const tcp, const kernel_ulong_t addr)
        tprints("{sa_handler=");
        print_sa_handler(sa.sa_handler__);
        tprints(", sa_mask=");
-       tprintsigmask_val("", sa.sa_mask);
+       tprint_old_sigmask_val("", sa.sa_mask);
        tprints(", sa_flags=");
        printflags(sigact_flags, sa.sa_flags, "SA_???");
 #if !(defined ALPHA || defined MIPS)
@@ -365,7 +365,14 @@ decode_old_sigaction(struct tcb *const tcp, const kernel_ulong_t addr)
 SYS_FUNC(sigaction)
 {
        if (entering(tcp)) {
-               printsignal(tcp->u_arg[0]);
+               int signo = tcp->u_arg[0];
+#if defined SPARC || defined SPARC64
+               if (signo < 0) {
+                       tprints("-");
+                       signo = -signo;
+               }
+#endif
+               printsignal(signo);
                tprints(", ");
                decode_old_sigaction(tcp, tcp->u_arg[1]);
                tprints(", ");