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