]> granicus.if.org Git - strace/blobdiff - process.c
Add a enum for decoding to tprint_iov() and tprint_iov_upto()
[strace] / process.c
index afac431a2c18e6d4773cc253e93de458a968ab40..32dcfe253739cda3eed79391ad812f5dc799739b 100644 (file)
--- a/process.c
+++ b/process.c
@@ -201,16 +201,19 @@ 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:
                case PTRACE_PEEKTEXT:
                case PTRACE_PEEKUSER:
 #endif
+               case PTRACE_GETEVENTMSG:
                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 */
                                return 0;
@@ -231,14 +234,29 @@ SYS_FUNC(ptrace)
                        printnum_ptr(tcp, data);
                        break;
 #endif
+               case PTRACE_GETEVENTMSG:
+                       printnum_ulong(tcp, data);
+                       break;
+               case PTRACE_GETREGSET:
+                       tprint_iov(tcp, /*len:*/ 1, data, IOV_DECODE_ADDR);
+                       break;
                case PTRACE_GETSIGINFO:
                        printsiginfo_at(tcp, data);
                        break;
                case PTRACE_GETSIGMASK:
                        print_sigset_addr_len(tcp, data, addr);
                        break;
-               case PTRACE_GETREGSET:
-                       tprint_iov(tcp, /*len:*/ 1, data, /*as string:*/ 0);
+               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);
+                       else
+                               print_seccomp_fprog(tcp, data, tcp->u_rval);
                        break;
                }
        }