--- syscalls.c.orig Tue Oct 8 11:21:24 2002 +++ syscalls.c Tue Oct 8 11:53:36 2002 @@ -101,6 +101,8 @@ struct syscall syscalls[] = { { { Hex, 0 }, { Sockaddr | OUT, 1 }, { Ptr | OUT, 2 } } }, { "getsockname", 1, 3, { { Hex, 0 }, { Sockaddr | OUT, 1 }, { Ptr | OUT, 2 } } }, + { "utrace", 1, 1, + { { Utrace, 0 } } }, { 0, 0, 0, { { 0, 0 }}}, }; @@ -341,6 +343,23 @@ print_arg(int fd, struct syscall_args *s } } break; + case Utrace: + { + int i, len; + unsigned char *p; + unsigned char *utrace_buffer; + len = args[sc->offset+1]; + tmp = malloc(len*2+2+1); + utrace_buffer = malloc(len); + if (get_struct(fd, (void *)args[sc->offset], (void *)utrace_buffer, + len) == -1) + err(1, "get_struct %p", (void *)args[sc->offset]); + strcpy(tmp, "0x"); + for(i = 0; i < len; i++) { + sprintf(tmp+2+i*2, "%02x", *(utrace_buffer+i)); + } + free(utrace_buffer); + } } return tmp; }