luser / rust-gdb-remote-protocol

A Rust crate implementing the GDB Remote Serial Protocol
Apache License 2.0
33 stars 13 forks source link

Properly implement interrupt handling #31

Open tromey opened 6 years ago

tromey commented 6 years ago

I think when the client continues the inferior (e.g., via vCont), the server is expected to keep listening to the connection, in case the client sends an interrupt (the special control-c that isn't packetized).

This is another situation where async behavior seems to be needed.

In non-stop, gdb will send vCtrlC instead; but I don't think we can rely on non-stop, as it's only been enabled by default in gdb fairly recently. (Also I'm not sure if lldb uses it; should check.)

tromey commented 6 years ago

See https://github.com/tromey/rust-gdb-remote-protocol/tree/multi-threaded