From 2b79e85ac02d33b6eb81a5816770c09253793bec Mon Sep 17 00:00:00 2001 From: Teo Mahnic Date: Mon, 8 Jun 2026 12:32:33 +0200 Subject: [PATCH] load_cmd: suppress disconnect errors during session close --- pyocd/core/session.py | 13 +++++++++---- pyocd/subcommands/load_cmd.py | 3 +++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pyocd/core/session.py b/pyocd/core/session.py index 2859c8d67..0097fe37b 100644 --- a/pyocd/core/session.py +++ b/pyocd/core/session.py @@ -623,18 +623,21 @@ def disconnect(self) -> None: assert (self._probe is not None) and (self._board is not None) LOG.debug("uninit session %s", self) + suppress_error = getattr(self.context_state, 'suppress_disconnect_error', False) + log = LOG.debug if suppress_error else LOG.error if self._inited: try: self._board.uninit() - self._inited = False except exceptions.Error: - LOG.error("Error during board uninit:", exc_info=self.log_tracebacks) + log("Error during board uninit:", exc_info=self.log_tracebacks) + finally: + self._inited = False if self._probe.is_open and (self._probe.wire_protocol is not None): try: self._probe.disconnect() except exceptions.Error: - LOG.error("Probe error during disconnect:", exc_info=self.log_tracebacks) + log("Probe error during disconnect:", exc_info=self.log_tracebacks) def close(self) -> None: """@brief Close the session. @@ -651,7 +654,9 @@ def close(self) -> None: try: self._probe.close() except exceptions.Error: - LOG.error("Probe error during close:", exc_info=self.log_tracebacks) + suppress_error = getattr(self.context_state, 'suppress_disconnect_error', False) + log = LOG.debug if suppress_error else LOG.error + log("Probe error during close:", exc_info=self.log_tracebacks) class UserScriptFunctionProxy: """@brief Proxy for user script functions. diff --git a/pyocd/subcommands/load_cmd.py b/pyocd/subcommands/load_cmd.py index 8a0529ae9..f370b5ebf 100644 --- a/pyocd/subcommands/load_cmd.py +++ b/pyocd/subcommands/load_cmd.py @@ -198,5 +198,8 @@ def invoke(self) -> int: # Skip DebugCoreStop and DebugPortStop unless it was explicitly requested by user. if not session.options.is_set('resume_on_disconnect'): session.options.set('resume_on_disconnect', False) + finally: + # Set a flag to suppress error logging for disconnect errors during session close. + session.context_state.suppress_disconnect_error = True return 0