1From a9f59fc8605de1bcca0b6c2d8132585f40c3b9bc Mon Sep 17 00:00:00 2001 2From: He Zhe <zhe.he@windriver.com> 3Date: Thu, 13 Aug 2020 11:25:58 +0800 4Subject: [PATCH] tools/trace.py: Fix failing to exit 5 6Class Probe::print_event is used as a callback of a ctypes wrapper. With 7Yocto latest python v3.8.5, the exception raised by exit() is ignored and 8thus trace cannot exit. Use os._exit(0) instead. 9 10$ /usr/share/bcc/tools/trace do_sys_open -M 1 11PID TID COMM FUNC 123740 3740 irqbalance do_sys_open 13Exception ignored on calling ctypes callback function: 14<function PerfEventArray.open_perf_buffer.<locals>.raw_cb at 0x7f7c9efea280> 15Traceback (most recent call last): 16File "/usr/lib64/python3.8/site-packages/bcc/table.py", line 685, in raw_cb_ 17callback(cpu, data, size) 18File "/usr/share/bcc/tools/trace", line 630, in print_event 19exit() 20File "/usr/lib64/python3.8/sitebuiltins.py", line 26, in __call_ 21raise SystemExit(code) 22SystemExit: None 23 24Upstream-Status: Pending 25 26Signed-off-by: He Zhe <zhe.he@windriver.com> 27--- 28 tools/trace.py | 2 +- 29 1 file changed, 1 insertion(+), 1 deletion(-) 30 31--- a/tools/trace.py 32+++ b/tools/trace.py 33@@ -671,7 +671,7 @@ BPF_PERF_OUTPUT(%s); 34 if self.aggregate: 35 self.print_aggregate_events() 36 sys.stdout.flush() 37- exit() 38+ os._exit(0) 39 40 def attach(self, bpf, verbose): 41 if len(self.library) == 0: 42