관리-도구
편집 파일: varwatch.stp
#!/usr/bin/stap global var, varerr probe $1 { if (@defined($2)) { try { newvar = $2; if (var[tid()] != newvar) { printf("%s[%d] %s %s:\n", execname(), tid(), pp(), @2); println(newvar); var[tid()] = newvar; } } catch { varerr ++ } # error during $2 resolution or perhaps var[] assignment } } probe kprocess.release { # if using per-thread checking delete var[$p->pid] # thread } probe never { var[0]="" # assigns a type to var in case no probes match $1 above } probe error,end { if (varerr) printf("%s %s access errors: %d", @1, @2, varerr); }