一,工具簡介
ucalls工具總結了包括Java、Perl、PHP、Python、Ruby、Tcl和Linux系統調用在內的各種高級語言中的方法調用。它顯示最常調用方法的統計信息,以及這些方法的延遲(持續時間)。
通過系統調用支持,ucalls可以提供關于進程與系統交互的基本信息,包括系統調用計數和延遲。然后,可以使用其他BCC工具(如trace、argdist、biotop、fileslower等)進一步探索這些信息。
二,代碼示例
#!/usr/bin/pythonfrom __future__ import print_function
import argparse
from time import sleep
from bcc import BPF, USDT, utils
from bcc.syscall import syscall_namelanguages = ["java", "perl", "php", "python", "ruby", "tcl"]examples = """examples:./ucalls -l java 185 # trace Java calls and print statistics on ^C./ucalls -l python 2020 1 # trace Python calls and print every second./ucalls -l java 185 -S # trace Java calls and syscalls./ucalls 6712 -S # trace only syscall counts./ucalls -l ruby 1344 -T 10 # trace top 10 Ruby method calls