call_stack.stp 807 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. global tracing
  2. function basename:string(path:string)
  3. {
  4. last_token = token = tokenize(path, "/");
  5. while (token != "") {
  6. last_token = token;
  7. token = tokenize("", "/");
  8. }
  9. return last_token;
  10. }
  11. probe process.mark("function__entry")
  12. {
  13. funcname = user_string($arg2);
  14. if (funcname == "start") {
  15. tracing = 1;
  16. }
  17. }
  18. probe process.mark("function__entry"), process.mark("function__return")
  19. {
  20. filename = user_string($arg1);
  21. funcname = user_string($arg2);
  22. lineno = $arg3;
  23. if (tracing) {
  24. printf("%d\t%s:%s:%s:%d\n", gettimeofday_us(), $$name,
  25. basename(filename), funcname, lineno);
  26. }
  27. }
  28. probe process.mark("function__return")
  29. {
  30. funcname = user_string($arg2);
  31. if (funcname == "start") {
  32. tracing = 0;
  33. }
  34. }