global indent, indent_str, entry_p probe begin { indent = 0 for (i=0; i<20; i++) { if (i == 0) indent_str[0] = "" else indent_str[i] = indent_str[i-1] . " " } } probe nd_syscall.* ? { if (pid() == target()) { if (entry_p) printf("\n") printf("%s%s: %s (%s) = ", indent_str[indent], execname(), name, argstr) # printf("%s%s: %s (%s) = ", indent_str[indent], execname(), probefunc(), argstr) indent++ entry_p = 1 } } probe nd_syscall.*.return ? { if (pid() == target()) { if (indent) indent-- if (entry_p) printf("%s\n", retstr) else printf("%s%s\n", indent_str[indent],retstr) entry_p = 0 } } probe end { printf("\n") }