]> granicus.if.org Git - strace/blobdiff - process.c
Add a enum for decoding to tprint_iov() and tprint_iov_upto()
[strace] / process.c
index 19b616d04dc52de258bd77916187109a10a7c1ab..32dcfe253739cda3eed79391ad812f5dc799739b 100644 (file)
--- a/process.c
+++ b/process.c
@@ -201,7 +201,7 @@ SYS_FUNC(ptrace)
                        print_sigset_addr_len(tcp, data, addr);
                        break;
                case PTRACE_SETREGSET:
-                       tprint_iov(tcp, /*len:*/ 1, data, /*as string:*/ 0);
+                       tprint_iov(tcp, /*len:*/ 1, data, IOV_DECODE_ADDR);
                        break;
 #ifndef IA64
                case PTRACE_PEEKDATA:
@@ -212,6 +212,7 @@ SYS_FUNC(ptrace)
                case PTRACE_GETREGSET:
                case PTRACE_GETSIGINFO:
                case PTRACE_GETSIGMASK:
+               case PTRACE_PEEKSIGINFO:
                case PTRACE_SECCOMP_GET_FILTER:
                        if (verbose(tcp)) {
                                /* print data on exiting syscall */
@@ -237,7 +238,7 @@ SYS_FUNC(ptrace)
                        printnum_ulong(tcp, data);
                        break;
                case PTRACE_GETREGSET:
-                       tprint_iov(tcp, /*len:*/ 1, data, /*as string:*/ 0);
+                       tprint_iov(tcp, /*len:*/ 1, data, IOV_DECODE_ADDR);
                        break;
                case PTRACE_GETSIGINFO:
                        printsiginfo_at(tcp, data);
@@ -245,6 +246,12 @@ SYS_FUNC(ptrace)
                case PTRACE_GETSIGMASK:
                        print_sigset_addr_len(tcp, data, addr);
                        break;
+               case PTRACE_PEEKSIGINFO:
+                       if (syserror(tcp))
+                               printaddr(data);
+                       else
+                               print_siginfo_array(tcp, data, tcp->u_rval);
+                       break;
                case PTRACE_SECCOMP_GET_FILTER:
                        if (syserror(tcp))
                                printaddr(data);