「pcstat」-

内容简介

安装命令

# go get golang.org/x/sys/unix
# go get github.com/tobert/pcstat/pcstat

常见错误汇总

Exception: Failed to compile BPF text

could not open bpf map: Operation not permitted · Issue #281 · iovisor/bcc · GitHub

问题描述:

# memleak-bpfcc -a -p $(pidof remmina)
/virtual/main.c:16:1: error: could not open bpf map: Cannot allocate memory
is maps/hash map type enabled in your kernel?
BPF_TABLE("hash", u64, struct alloc_info_t, allocs, 1000000);
^
/virtual/include/bcc/helpers.h:75:76: note: expanded from macro 'BPF_TABLE'
#define BPF_TABLE(_table_type, _key_type, _leaf_type, _name, _max_entries) \
                                                                           ^
/virtual/include/bcc/helpers.h:71:4: note: expanded from macro '\
BPF_F_TABLE'
}; \
   ^
/virtual/main.c:84:9: error: bpf_table allocs failed to open
        allocs.update(&address, &info);
        ^
/virtual/main.c:100:37: error: bpf_table allocs failed to open
        struct alloc_info_t *info = allocs.lookup(&addr);
                                    ^
3 errors generated.
Traceback (most recent call last):
  File "/usr/sbin/memleak-bpfcc", line 394, in <module>
    bpf = BPF(text=bpf_source)
  File "/usr/lib/python2.7/dist-packages/bcc/__init__.py", line 320, in __init__
    raise Exception("Failed to compile BPF text")
Exception: Failed to compile BPF text

解决办法:
ulimit -n 65535

Exception: Failed to attach BPF to uprobe

18 | 案例篇:内存泄漏了,我该如何定位和处理?

问题描述:

# /usr/share/bcc/tools/memleak -a -p 21642
Attaching to pid 21642, Ctrl+C to quit.
perf_event_open(/sys/kernel/debug/tracing/events/uprobes/p__lib_x86_64_linux_gnu_libc_2_27_so_0x97070_21642_bcc_21882/id): Input/output error
Traceback (most recent call last):
  File "/usr/share/bcc/tools/memleak", line 416, in <module>
    attach_probes("malloc")
  File "/usr/share/bcc/tools/memleak", line 406, in attach_probes
    pid=pid)
  File "/usr/lib/python2.7/dist-packages/bcc/__init__.py", line 989, in attach_uprobe
    raise Exception("Failed to attach BPF to uprobe")
Exception: Failed to attach BPF to uprobe

解决办法:
在内核中,需要开启 CONFIG_UPROBE_EVENTS=y 选项