Implement DAP attach request

This implements the DAP "attach" request.

Note that the copyright dates on the new test source file are not
incorrect -- this was copied verbatim from another directory.

Reviewed-By: Eli Zaretskii <eliz@gnu.org>
This commit is contained in:
Tom Tromey
2023-05-09 14:20:31 -06:00
parent 69ed07d546
commit d01f36bdfa
5 changed files with 97 additions and 4 deletions

View File

@ -16,7 +16,7 @@
import gdb
from .events import ExecutionInvoker
from .server import request, capability
from .startup import send_gdb, in_gdb_thread
from .startup import send_gdb, send_gdb_with_response, in_gdb_thread
_program = None
@ -45,6 +45,17 @@ def launch(*, program=None, args=[], env=None, **extra):
send_gdb(lambda: _set_args_env(args, env))
@request("attach")
def attach(*, pid, **args):
# Ensure configurationDone does not try to run.
global _program
_program = None
# Use send_gdb_with_response to ensure we get an error if the
# attach fails.
send_gdb_with_response("attach " + str(pid))
return None
@capability("supportsConfigurationDoneRequest")
@request("configurationDone")
def config_done(**args):