ttrace.2 (2010 09)

t
ttrace(2) ttrace(2)
SYS_wait, "wait",
SYS_waitpid, "waitpid",
SYS_waitid, "waitid",
SYS_time, "time",
SYS_brk, "brk",
SYS_sigsuspend, "sigsuspend",
SYS_sigprocmask, "sigprocmask",
SYS_sigtimedwait, "sigtimedwait",
-1, NULL,
};
if (stp->tts_scno == SYS_siginhibit || stp->tts_scno == SYS_sigenable) {
return;
}
if (evt == TTEVT_NONE) {
evt = TTEVT_SYSCALL;
}
p = gen_name(tab, stp->tts_scno);
if (p == NULL) {
char buf[32];
(void) sprintf(buf, "syscall_%#x", stp->tts_scno);
p = buf;
}
(void) printf("%s", p);
for (i = 0; i < nargs; i++) {
(void) printf("(");
for (i = 0, argp = stp->tts_scarg; i < nargs; i++, argp++) {
(void) printf("%#llx", *argp);
(void) printf("%s",
(i == nargs - 1) ? "" : ", ");
}
(void) printf(")");
}
if (stp->tts_event == TTEVT_SYSCALL_RETURN) {
if (stp->tts_u.tts_syscall.tts_errno) {
(void) printf(" ERR%d",
stp->tts_u.tts_syscall.tts_errno);
}
else {
(void) printf(" = %lld",
stp->tts_u.tts_syscall.tts_rval[0]);
}
}
else {
(void) printf(" ...");
}
(void) printf("\n");
}
static void
show_event(const ttstate_t *stp)
{
switch(stp->tts_event) {
case TTEVT_NONE:
case TTEVT_SYSCALL:
case TTEVT_SYSCALL_ENTRY:
case TTEVT_SYSCALL_RESTART:
show_syscall(stp);
break;
case TTEVT_EXIT:
(void) printf("%s %d\n", ev_name(stp->tts_event),
HP-UX 11i Version 3: September 2010 19 Hewlett-Packard Company 19