Matej Stuchlik 2c1c983
#!/usr/bin/stap 
Matej Stuchlik 2c1c983
Matej Stuchlik 2c1c983
global fn_calls;
Matej Stuchlik 2c1c983
Matej Stuchlik 2c1c983
probe python.function.entry
Matej Stuchlik 2c1c983
{ 
Matej Stuchlik 2c1c983
  fn_calls[pid(), filename, funcname, lineno] += 1;
Matej Stuchlik 2c1c983
}
Matej Stuchlik 2c1c983
Matej Stuchlik 2c1c983
probe timer.ms(1000) {
Matej Stuchlik 2c1c983
    printf("\033[2J\033[1;1H") /* clear screen */
Matej Stuchlik 2c1c983
    printf("%6s %80s %6s %30s %6s\n",
Matej Stuchlik 2c1c983
           "PID", "FILENAME", "LINE", "FUNCTION", "CALLS")
Matej Stuchlik 2c1c983
    foreach ([pid, filename, funcname, lineno] in fn_calls- limit 20) {
Matej Stuchlik 2c1c983
        printf("%6d %80s %6d %30s %6d\n",
Matej Stuchlik 2c1c983
            pid, filename, lineno, funcname,
Matej Stuchlik 2c1c983
            fn_calls[pid, filename, funcname, lineno]);
Matej Stuchlik 2c1c983
    }
Matej Stuchlik 2c1c983
Matej Stuchlik 2c1c983
    delete fn_calls;
Matej Stuchlik 2c1c983
}