From 5a13cdcf52f14747c1edcbc00508c01ae92b1071 Mon Sep 17 00:00:00 2001 From: Carles Cufi Date: Fri, 13 Jun 2025 15:23:34 +0200 Subject: [PATCH] scripts: trace_usb_capture: Clean up on exit When the user presses Ctrl+c to exit the infinite capturing loop, ensure that the cleanup funciton is always executed. Signed-off-by: Carles Cufi --- scripts/tracing/trace_capture_usb.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/scripts/tracing/trace_capture_usb.py b/scripts/tracing/trace_capture_usb.py index dbee1ae799e..dd82adf207a 100644 --- a/scripts/tracing/trace_capture_usb.py +++ b/scripts/tracing/trace_capture_usb.py @@ -86,18 +86,18 @@ def main(): buff = usb.util.create_buffer(8192) read_endpoint.read(buff, 10000) - with open(output_file, "wb") as file_desc: - while True: - buff = usb.util.create_buffer(8192) - length = read_endpoint.read(buff, 100000) - for index in range(length): - file_desc.write(chr(buff[index]).encode('latin1')) - - usb.util.release_interface(usb_device, interface) + try: + with open(output_file, "wb") as file_desc: + while True: + buff = usb.util.create_buffer(8192) + length = read_endpoint.read(buff, 100000) + for index in range(length): + file_desc.write(chr(buff[index]).encode('latin1')) + except KeyboardInterrupt: + pass + finally: + print('Data capture interrupted, data saved into {}'.format(args.output)) + usb.util.release_interface(usb_device, interface) if __name__=="__main__": - try: - main() - except KeyboardInterrupt: - print('Data capture interrupted, data saved into {}'.format(args.output)) - sys.exit(0) + main()