Преглед изворни кода

idf.py: Fixed gdb target to exit cleanly when no openocd watch task

When idf.py gdb starts, it expects openocd was started in the background
and creates a thread to watch for openocd errors. when gdb target exits,
the debug_ext.py aims to cleanup all threads and processes, but fails
with traceback if openocd-watch thread not available, which could happen
if openocd started separately.
David Cermak пре 5 година
родитељ
комит
f871186da3
1 измењених фајлова са 5 додато и 1 уклоњено
  1. 5 1
      tools/idf_py_actions/debug_ext.py

+ 5 - 1
tools/idf_py_actions/debug_ext.py

@@ -287,7 +287,11 @@ def action_extensions(base_actions, project_path):
                 continue
             finally:
                 watch_openocd.join()
-                processes["threads_to_join"].remove(watch_openocd)
+                try:
+                    processes["threads_to_join"].remove(watch_openocd)
+                except ValueError:
+                    # Valid scenario: watch_openocd task won't be in the list if openocd not started from idf.py
+                    pass
 
     fail_if_openocd_failed = {
         "names": ["--require-openocd", "--require_openocd"],