From a9f59fc8605de1bcca0b6c2d8132585f40c3b9bc Mon Sep 17 00:00:00 2001 From: He Zhe Date: Thu, 13 Aug 2020 11:25:58 +0800 Subject: [PATCH] tools/trace.py: Fix failing to exit Class Probe::print_event is used as a callback of a ctypes wrapper. With Yocto latest python v3.8.5, the exception raised by exit() is ignored and thus trace cannot exit. Use os._exit(0) instead. $ /usr/share/bcc/tools/trace do_sys_open -M 1 PID TID COMM FUNC 3740 3740 irqbalance do_sys_open Exception ignored on calling ctypes callback function: .raw_cb at 0x7f7c9efea280> Traceback (most recent call last): File "/usr/lib64/python3.8/site-packages/bcc/table.py", line 685, in raw_cb_ callback(cpu, data, size) File "/usr/share/bcc/tools/trace", line 630, in print_event exit() File "/usr/lib64/python3.8/sitebuiltins.py", line 26, in __call_ raise SystemExit(code) SystemExit: None Upstream-Status: Pending Signed-off-by: He Zhe --- tools/trace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/trace.py b/tools/trace.py index 7a61594f..d09dd2a8 100755 --- a/tools/trace.py +++ b/tools/trace.py @@ -627,7 +627,7 @@ BPF_PERF_OUTPUT(%s); Probe.event_count += 1 if Probe.max_events is not None and \ Probe.event_count >= Probe.max_events: - exit() + os._exit(0) sys.stdout.flush() def attach(self, bpf, verbose): -- 2.17.1