ttrace.2 (2010 09)

t
ttrace(2) ttrace(2)
return p;
}
(void) sprintf(buf, "EVENT_%#x", ev);
return buf;
}
static void
errexit(const char *p)
{
(void) fprintf(stderr, "%s: %s\n", p, strerror(errno));
if (ppid) {
(void) kill(ppid, SIGINT);
}
exit (1);
}
static void
dottrace(ttreq_t req, pid_t pid, lwpid_t lwpid, uint64_t addr, uint64_t data,
uint64_t addr2)
{
int rval;
char *p;
static _exp_t tab[] = {
TT_PROC_SETTRC, "PROC_SETTRC",
TT_PROC_ATTACH, "PROC_ATTACH",
TT_PROC_ATTACH_NOSTOP, "PROC_ATTACH_NOSTOP",
TT_PROC_DETACH, "PROC_DETACH",
TT_PROC_CONTINUE, "PROC_CONTINUE",
TT_PROC_SET_EVENT_MASK, "PROC_SET_EVENT_MASK",
TT_PROC_GET_FIRST_LWP_STATE, "PROC_GET_FIRST_LWP_STATE",
TT_PROC_GET_NEXT_LWP_STATE, "PROC_GET_NEXT_LWP_STATE",
TT_LWP_CONTINUE, "LWP_CONTINUE",
-1, NULL
};
rval = ttrace(req, pid, lwpid, addr, data, addr2);
if (rval == -1) {
p = gen_name(tab, req);
errexit(p ? p : "ttrace");
}
}
static void
show_syscall(const ttstate_t *stp)
{
int nargs = stp->tts_scnargs;
ttevents_t evt = stp->tts_event;
int i;
char *p;
const uint64_t *argp;
static _exp_t tab[] = {
SYS_open, "open",
SYS_close, "close",
SYS_read, "read",
SYS_write, "write",
SYS_ioctl, "ioctl",
SYS_lseek, "lseek",
SYS_fstat, "fstat",
SYS_stat, "stat",
SYS_poll, "poll",
SYS_select, "select",
SYS_mmap, "mmap",
18 Hewlett-Packard Company 18 HP-UX 11i Version 3: September 2010