HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)
__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
t
ttrace(2) ttrace(2)
gen_name(_exp_t *base, int val)
{
_exp_t *rp;
for (rp = base; rp->name; rp++) {
if (val == rp->val) {
return rp->name;
}
}
return NULL;
}
static char *
ev_name(ttevents_t ev)
{
char buf[32];
char *p;
static _exp_t tab[] = {
TTEVT_SIGNAL, "SIGNAL",
TTEVT_FORK, "FORK",
TTEVT_EXEC, "EXEC",
TTEVT_EXIT, "EXIT",
TTEVT_VFORK, "VFORK",
TTEVT_SYSCALL, "SYSCALL",
TTEVT_SYSCALL_ENTRY, "SYSCALL_ENTRY",
TTEVT_LWP_CREATE, "LWP_CREATE",
TTEVT_LWP_TERMINATE, "LWP_TERMINATE",
TTEVT_LWP_EXIT, "LWP_EXIT",
TTEVT_LWP_ABORT_SYSCALL,"LWP_ABORT_SYSCALL",
#if TT_FEATURE_LEVEL >= 7
TTEVT_BPT_SSTEP, "LWP_BPT_SSTEP",
#endif
-1, NULL
};
p = gen_name(tab, (int) ev);
if (p) {
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_DETACH, "PROC_DETACH",
Section 2−−422 − 10 − HP-UX Release 11i: December 2000
___
___