hello_fields.php 550 B

12345678910111213141516171819202122
  1. <?php
  2. $prog = <<<EOT
  3. int hello(void *ctx) {
  4. bpf_trace_printk("Hello, World!\\n");
  5. return 0;
  6. }
  7. EOT;
  8. # load BPF program
  9. $ebpf = new Ebpf($prog);
  10. $ebpf->attach_kprobe($ebpf->get_syscall_fnname("clone"),"hello");
  11. # header
  12. printf("%-18s %-16s %-6s %s\n", "TIME(s)", "COMM", "PID", "MESSAGE");
  13. # format output
  14. while (true) {
  15. try {
  16. list($task, $pid, $cpu, $flags, $ts, $msg) =$ebpf->trace_fields();
  17. printf("%-18.9f %-16s %-6d %s\n", $ts, $task, $pid, $msg);
  18. flush();
  19. } catch (Exception $e) {
  20. continue;
  21. }
  22. }