1#!/usr/bin/python 2# 3# This is a Hello World example that formats output as fields. 4 5from bcc import BPF 6from bcc.utils import printb 7 8# define BPF program 9prog = """ 10int hello(void *ctx) { 11 bpf_trace_printk("Hello, World!\\n"); 12 return 0; 13} 14""" 15 16# load BPF program 17b = BPF(text=prog) 18b.attach_kprobe(event=b.get_syscall_fnname("clone"), fn_name="hello") 19 20# header 21print("%-18s %-16s %-6s %s" % ("TIME(s)", "COMM", "PID", "MESSAGE")) 22 23# format output 24while 1: 25 try: 26 (task, pid, cpu, flags, ts, msg) = b.trace_fields() 27 except ValueError: 28 continue 29 except KeyboardInterrupt: 30 exit() 31 printb(b"%-18.9f %-16s %-6d %s" % (ts, task, pid, msg)) 32