-
Notifications
You must be signed in to change notification settings - Fork 16.7k
Description
This issue has come up when testing the GDB-protocol server implementation for melonDS. LLDB sends a QStartNoAckMode packet as the very first command sent (as shown in the log in the linked issue). This shouldn't happen: the client first needs to send a qSupported packet to check whether the server supports no-ack mode. Only if both do, the client may send the QStartNoAckMode packet to switch to no-ack mode (c.f. GDB documentation):
If the stub supports ‘QStartNoAckMode’ and prefers to operate in no-acknowledgment mode, it should report that to GDB by including ‘QStartNoAckMode+’ in its response to ‘qSupported’; see qSupported. If GDB also supports ‘QStartNoAckMode’ and it has not been disabled via the set remote noack-packet off command (see Remote Configuration), GDB may then send a ‘QStartNoAckMode’ packet to the stub. Only then may the stub actually turn off packet acknowledgments. GDB sends a final ‘+’ acknowledgment of the stub’s ‘OK’ response, which can be safely ignored by the stub.