dtrace一直被宣传为能够动态检测node.js代码以在节点级别进行动态跟踪,例如,允许在JavaScript堆栈框架和变量级别调试节点程序(以及来自核心转储的较低级别的跟踪。
Linux上的eBPF现在达到了这种复杂程度吗?我对Python特别感兴趣,但是如果对任何类似的动态语言都回答了该问题,则会认为该问题已得到回答。
如果没有,那么还需要做些什么来支持它?
答案 0 :(得分:2)
是的,您可以使用BPF和USDT probes来跟踪Python脚本。不过,您必须build your Python runtime with USDT probes。
密件抄送包含a few tracing scripts for Python。例如,您可以使用pythoncalls.sh
来打印名为的前2种方法:
$ ./pythoncalls.sh -T 2 -p 26914
Tracing calls in process 26914 (language: python)... Ctrl-C to quit.
METHOD # CALLS
<stdin>.<module> 1
<stdin>.fibo 14190928
^C
请注意,其他几个虚拟机也支持USDT探针,例如Java,Perl,PHP,Ruby和Tcl。