Skip to content

Support multiplexing of spawned debug sessions #329

Open
@connor4312

Description

@connor4312

From #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;

Metadata

Metadata

Labels

feature-requestRequest for new features or functionality

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions