From bf96d374157ecf6ddef2cb5bdc0145f73b75323e Mon Sep 17 00:00:00 2001 From: "Dr.Z" Date: Fri, 23 Oct 2015 18:59:10 +0900 Subject: [PATCH] Python: fix detach_kprobe() As open_kprobes contains not fd but pointer to struct perf_reader, it should call lib.perf_reader_free() instead of os.close() --- src/python/bcc/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/python/bcc/__init__.py b/src/python/bcc/__init__.py index 001610d..f7a1973 100644 --- a/src/python/bcc/__init__.py +++ b/src/python/bcc/__init__.py @@ -575,7 +575,7 @@ class BPF(object): ev_name = "p_" + event.replace("+", "_").replace(".", "_") if ev_name not in open_kprobes: raise Exception("Kprobe %s is not attached" % event) - os.close(open_kprobes[ev_name]) + lib.perf_reader_free(open_kprobes[ev_name]) desc = "-:kprobes/%s" % ev_name res = lib.bpf_detach_kprobe(desc.encode("ascii")) if res < 0: @@ -612,7 +612,7 @@ class BPF(object): ev_name = "r_" + event.replace("+", "_").replace(".", "_") if ev_name not in open_kprobes: raise Exception("Kretprobe %s is not attached" % event) - os.close(open_kprobes[ev_name]) + lib.perf_reader_free(open_kprobes[ev_name]) desc = "-:kprobes/%s" % ev_name res = lib.bpf_detach_kprobe(desc.encode("ascii")) if res < 0: -- 2.7.4