From e066f35c6981c720e3a7e5883efc40c861b3b7ee Mon Sep 17 00:00:00 2001 From: eleviant <56861949+eleviant@users.noreply.github.com> Date: Sat, 21 Jun 2025 22:48:08 +0200 Subject: [lldb] Fix qEcho message handling (#145072) Patch fixes the sync-on-timeout logic in lldb and switches to qEcho based ping, instead of qC. This fixes vRun message case, when there is no process yet and qC returns an error. --- lldb/packages/Python/lldbsuite/test/gdbclientutils.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lldb/packages/Python/lldbsuite/test/gdbclientutils.py') diff --git a/lldb/packages/Python/lldbsuite/test/gdbclientutils.py b/lldb/packages/Python/lldbsuite/test/gdbclientutils.py index 753de22..b603c35 100644 --- a/lldb/packages/Python/lldbsuite/test/gdbclientutils.py +++ b/lldb/packages/Python/lldbsuite/test/gdbclientutils.py @@ -92,6 +92,9 @@ class MockGDBServerResponder: class RESPONSE_DISCONNECT: pass + class RESPONSE_NONE: + pass + def __init__(self): self.packetLog = [] @@ -181,6 +184,8 @@ class MockGDBServerResponder: return self.qQueryGDBServer() if packet == "qHostInfo": return self.qHostInfo() + if packet.startswith("qEcho"): + return self.qEcho(int(packet.split(":")[1])) if packet == "qGetWorkingDir": return self.qGetWorkingDir() if packet == "qOffsets": @@ -237,6 +242,9 @@ class MockGDBServerResponder: def qHostInfo(self): return "ptrsize:8;endian:little;" + def qEcho(self): + return "E04" + def qQueryGDBServer(self): return "E04" @@ -655,6 +663,8 @@ class MockGDBServer: if not isinstance(response, list): response = [response] for part in response: + if part is MockGDBServerResponder.RESPONSE_NONE: + continue if part is MockGDBServerResponder.RESPONSE_DISCONNECT: raise self.TerminateConnectionException() self._sendPacket(part) -- cgit v1.1