(continued from previous page) (continues on next page) 4 3 Static SystemTap markers The low-level way to use the SystemTap integration is to use the static markers directly. This requires you to explicitly state the binary file containing them. For example, this SystemTap script can be used to show the call/return hierarchy of a Python script: probe process("python").mark("function__entry") { filename = user_string($arg1); funcname = user_string($arg2); lineno = $arg3; printf("%s => %s in %s:%d\
", thread_indent(1), funcname, filename, lineno); } probe process("python").mark("function__return") { filename = user_string($arg1); funcname = user_string($arg2); lineno = $arg3; 156641360502280 function-entry:call_stack.py:start:23 156641360518804 function-entry: call_stack.py:function_1:1 156641360532797 function-entry: call_stack.py:function_3:9 156641360546807 function-return: call_stack.py:function_3:10 156641360563367 function-return: call_stack.py:function_1:2 156641360578365 function-entry: call_stack.py:function_2:5 156641360591757 function-entry: call_stack.py:function_1:1 156641360605556 function-entry: call_stack.py:function_3:9 156641360617482 function-return: call_stack.py:function_3:10 156641360629814 function-return: call_stack.py:function_1:2 156641360642285 function-return: call_stack.py:function_2:6 156641360656770 function-entry: call_stack.py:function_3:9 156641360669707 function-return: call_stack.py:function_3:10 156641360687853 function-entry: call_stack.py:function_4:13 156641360700719 function-return: call_stack.py:function_4:14 156641360719640 function-entry: call_stack.py:function_5:18 156641360732567 function-return: call_stack.py:function_5:21 156641360747370 function-return:call_stack.py:start:28 /self->trace/ { self->indent--; printf("%d	%*s:", timestamp, 15, probename); printf("%*s", self->indent, ""); printf("%s:%s:%d
", basename(copyinstr(arg0)), copyinstr(arg1), } python$target:::function-return /copyinstr(arg1) == "start"/ { self->trace = 0; } $ sudo dtrace -q -s call_stack.d -c "python3.6 script.py" The output looks like this: It can be invoked like this: