Created
March 27, 2014 13:41
-
-
Save jjelinek/9807800 to your computer and use it in GitHub Desktop.
zone truss
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fbt::zone:entry | |
/arg0 == 7/ | |
{ | |
printf("%s -> %d\n", probefunc, arg0); | |
} | |
fbt::zone_boot:entry | |
{ | |
printf("%s -> zoneid %d\n", probefunc, arg0); | |
} | |
fbt::zone_boot:return | |
{ | |
printf("%s <- %d\n", probefunc, arg1); | |
} | |
fbt::zone_start_init:entry | |
{ | |
printf("%s -> zoneid %d\n", probefunc, curthread->t_procp->p_zone->zone_id); | |
self->zid = curthread->t_procp->p_zone->zone_id; | |
} | |
fbt::zone_start_init:return | |
{ | |
printf("%s <- %d\n", probefunc, curthread->t_procp->p_zone->zone_boot_err); | |
} | |
fbt::exec_init:entry | |
{ | |
printf("%s -> %s, %s\n", probefunc, stringof(arg0), stringof(arg1)); | |
self->e = 1; | |
} | |
fbt::exec_init:return | |
{ | |
printf("%s <- %d\n", probefunc, arg1); | |
self->e = 0; | |
} | |
fbt::exec_common:entry | |
/self->e/ | |
{ | |
printf("%s -> %d 0x%p %d\n", probefunc, curthread->t_procp->p_zone->zone_id, | |
arg0, arg3); | |
} | |
fbt::exec_common:return | |
/self->e/ | |
{ | |
printf("%s <- %d\n", probefunc, arg1); | |
} | |
fbt::start_init_common:entry | |
/self->zid/ | |
{ | |
printf("%s ->\n", probefunc); | |
} | |
fbt::start_init_common:return | |
/self->zid/ | |
{ | |
printf("%s <- %d\n", probefunc, arg1); | |
} | |
fbt::rexit:entry, | |
fbt::exit:entry | |
/curthread->t_procp->p_zone->zone_id != 0/ | |
{ | |
printf("%s -> %s\n", probefunc, execname); | |
} | |
fbt::rexit:return, | |
fbt::exit:return | |
/curthread->t_procp->p_zone->zone_id != 0/ | |
{ | |
printf("%s <- %d %d\n", probefunc, arg1, errno); | |
} | |
syscall::exece:entry | |
/curpsinfo->pr_zoneid != 0/ | |
{ | |
self->start = 1; | |
self->ename = execname; | |
} | |
syscall:::entry | |
/curpsinfo->pr_zoneid != 0 && probefunc != "exece"/ | |
{ | |
self->start = 1; | |
self->arg0 = arg0; | |
self->arg1 = arg1; | |
self->arg2 = arg2; | |
} | |
/* print 3 args, return as hex */ | |
syscall::lwp_sigmask:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(0x%X, 0x%X, 0x%X) = 0x%X\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
(int)self->arg0, self->arg1, self->arg2, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print 3 args, arg0 as a string */ | |
syscall::stat*:return, | |
syscall::lstat*:return, | |
syscall::open:return, | |
syscall::access:return, | |
syscall::resolvepath:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(\"%S\", 0x%X, 0x%X) = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
copyinstr(self->arg0), self->arg1, self->arg2, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print execname as a string */ | |
syscall::exece:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(\"%s\") = %d\n", | |
self->ename, curpsinfo->pr_euid, | |
probefunc, | |
execname, (int)arg0); | |
self->ename = 0; | |
} | |
/* print 1 arg, arg1 as a string */ | |
syscall::openat:return, | |
syscall::openat64:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(\"%s\") = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
stringof(copyinstr(self->arg1)), (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print 3 args, arg1 as a string */ | |
syscall::write:return, | |
syscall::pwrite:return, | |
syscall::*read*:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(0x%X, \"%S\", 0x%X) = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, self->arg0, | |
stringof(copyin(self->arg1, self->arg2)), self->arg2, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print 0 arg output */ | |
syscall::gtime:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s() = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
(int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
syscall::fork*:return | |
/curpsinfo->pr_zoneid != 0/ | |
{ | |
printf("%s %d %s() = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
(int)arg0); | |
} | |
/* print 1 arg output */ | |
syscall::brk:return, | |
syscall::times:return, | |
syscall::stime:return, | |
syscall::close:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(0x%X) = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
self->arg0, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print 2 arg output */ | |
syscall::munmap:return | |
/self->start/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(0x%X, 0x%X) = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, | |
self->arg0, self->arg1, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
/* print 3 arg output - default */ | |
syscall:::return | |
/self->start && probefunc != "forksys"/ | |
{ | |
self->start = 0; | |
printf("%s %d %s(0x%X, 0x%X, 0x%X) = %d\n", | |
execname, curpsinfo->pr_euid, | |
probefunc, self->arg0, | |
self->arg1, self->arg2, (int)arg0); | |
self->arg0 = 0; | |
self->arg1 = 0; | |
self->arg2 = 0; | |
} | |
fbt::core:entry | |
/curpsinfo->pr_zoneid != 0/ | |
{ | |
printf("%s %d %s\n", execname, curpsinfo->pr_euid, probefunc); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment