diff options
author | eleviant <56861949+eleviant@users.noreply.github.com> | 2025-06-25 13:38:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-25 13:38:37 +0200 |
commit | c941bee75d252ac9a9787dd0594959d890ddb073 (patch) | |
tree | 5fe5f945c5e0a23f58afbb6f4f756a8460295b7e /lldb/packages/Python/lldbsuite/test | |
parent | 97fdc237ddda7565c7c902cc4fc764f73e70686b (diff) | |
download | llvm-c941bee75d252ac9a9787dd0594959d890ddb073.zip llvm-c941bee75d252ac9a9787dd0594959d890ddb073.tar.gz llvm-c941bee75d252ac9a9787dd0594959d890ddb073.tar.bz2 |
[lldb] Fix qEcho message handling. (#145675)
This fixes issues found in e066f35c6981c720e3a7e5883efc40c861b3b7, which
was later reverted. The problem was with "k" message which was sent with
sync_on_timeout flag set to true, so lldb was waiting for response,
which is currently not being sent by lldb-server. Not waiting for
response at all seems to be not a solution, because on MAC OS X lldb
waits for response from "k" to gracefully kill inferior.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/gdbclientutils.py | 10 |
1 files changed, 10 insertions, 0 deletions
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) |