Open SpencerPark opened 9 months ago
Follow up, it seems like at least for jupyterlab, a kernel is expected to declare metadata.debugger = true
in their kernelspec and the debugger
field in the kernel info reply is unused. Only if that is set, then implementation support is queried by sending a debug_request.debugInfo
(always with seq
=0) request that should return a success
ful reply.
Would appreciate some confirmation (or a correction) if this is the expected protocol and can look at adding to the docs :)
EDIT: related https://github.com/jupyter/jupyter_client/issues/737
I'm looking into implementing the kernel side of the debugging protocol and had some questions regarding the messaging spec. Specifically regarding the request/reply sequencing and expectations regarding the reply order.
The debug_request/reply spec mentions that:
but none of the extension message specs include
seq
orrequest_seq
in theircontent
dicts. Is this part of the DAP ignored in favor of jupyter's existing message parent mechanism or just omitted from the docs for brevity? If so, is that specific to the extensions only or do all DAP replies use the parent header instead ofrequest_seq
?Related to that, is there the expectation that while a
debug_request
is being handled, all other incoming (from kernel's perspective) control messages are queued until thedebug_reply
is sent? Or should control requests be handled concurrently unlike shell? For example if a slow debug_request is running and an interrupt_request comes in, does it wait for the debug_request to complete?