Skip to content

Commit 05374d1

Browse files
committed
Match buffered data from debugging server
1 parent 311e10f commit 05374d1

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

platformio/debug/process/server.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@
2626

2727

2828
class DebugServerProcess(DebugBaseProcess):
29+
30+
STD_BUFFER_SIZE = 1024
31+
2932
def __init__(self, debug_config):
3033
super(DebugServerProcess, self).__init__()
3134
self.debug_config = debug_config
3235
self._ready = False
36+
self._std_buffer = {"out": b"", "err": b""}
3337

3438
async def run(self): # pylint: disable=too-many-branches
3539
server = self.debug_config.server
@@ -133,8 +137,12 @@ def stdout_data_received(self, data):
133137
super(DebugServerProcess, self).stdout_data_received(
134138
escape_gdbmi_stream("@", data) if is_gdbmi_mode() else data
135139
)
136-
self._check_ready_by_pattern(data)
140+
self._std_buffer["out"] += data
141+
self._check_ready_by_pattern(self._std_buffer["out"])
142+
self._std_buffer["out"] = self._std_buffer["out"][-1 * self.STD_BUFFER_SIZE :]
137143

138144
def stderr_data_received(self, data):
139145
super(DebugServerProcess, self).stderr_data_received(data)
140-
self._check_ready_by_pattern(data)
146+
self._std_buffer["err"] += data
147+
self._check_ready_by_pattern(self._std_buffer["err"])
148+
self._std_buffer["err"] = self._std_buffer["err"][-1 * self.STD_BUFFER_SIZE :]

0 commit comments

Comments
 (0)