microsoft / microsoft/debug-adapter-protocol

Support multiplexing of spawned debug sessions

Open
#329 11 comments 2 reactions 2 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
HTML
Stars
1.8k
Forks
173
Avg merge
7d 7h
Merged PRs (30d)
2

Description

From https://github.com/microsoft/debug-adapter-protocol/issues/79, we now have a way for DA's to start client sessions, which spawns new DA's.

However, for many cases, multiplexing the new sessions over the same DA connection is preferable. As a starting point, I suggest the following.

First, to modify StartDebuggingRequestArguments to accept a connectionId?: number.

interface StartDebuggingRequestArguments {
  /**
   * Requests that the new connection be multiplexed over the same transport
   * as the parent session. If present, ProtocolMessages for the new session 
   * will have a corresponding `connectionId` property. It is not valid to use
   * an ID already in use by an existing session.
   */
  connectionId?: number;

Then to add a corresponding optional property on the protocol message.

interface ProtocolMessage {
  /**
   * If the current session was a child started via a `startDebugging` request, 
   * then this is set to the `connectionId` that was present in the `StartDebuggingRequestArguments`.
   */
  connectionId?: number;

And of course add a capability in the InitializeRequestArguments so DA's know whether this is supported

interface InitializeRequestArguments {
  /**
   * Whether the client supports `connectionId` in `StartDebuggingRequestArguments` 
   */
  supportsConnectionMultiplexing?: boolean;

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.