From 05374d1145e704145d156601e4ee6abaac5b7d05 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 24 Jun 2021 16:42:45 +0300 Subject: [PATCH] Match buffered data from debugging server --- platformio/debug/process/server.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platformio/debug/process/server.py b/platformio/debug/process/server.py index 1fb08f4d..b2653511 100644 --- a/platformio/debug/process/server.py +++ b/platformio/debug/process/server.py @@ -26,10 +26,14 @@ from platformio.proc import where_is_program class DebugServerProcess(DebugBaseProcess): + + STD_BUFFER_SIZE = 1024 + def __init__(self, debug_config): super(DebugServerProcess, self).__init__() self.debug_config = debug_config self._ready = False + self._std_buffer = {"out": b"", "err": b""} async def run(self): # pylint: disable=too-many-branches server = self.debug_config.server @@ -133,8 +137,12 @@ class DebugServerProcess(DebugBaseProcess): super(DebugServerProcess, self).stdout_data_received( escape_gdbmi_stream("@", data) if is_gdbmi_mode() else data ) - self._check_ready_by_pattern(data) + self._std_buffer["out"] += data + self._check_ready_by_pattern(self._std_buffer["out"]) + self._std_buffer["out"] = self._std_buffer["out"][-1 * self.STD_BUFFER_SIZE :] def stderr_data_received(self, data): super(DebugServerProcess, self).stderr_data_received(data) - self._check_ready_by_pattern(data) + self._std_buffer["err"] += data + self._check_ready_by_pattern(self._std_buffer["err"]) + self._std_buffer["err"] = self._std_buffer["err"][-1 * self.STD_BUFFER_SIZE :]