Skip to content

Make order of ConfigurationDoneRequest and LaunchRequest deterministic #4902

@weinand

Description

@weinand

Currently the order of ConfigurationDoneRequest and LaunchRequest is not deterministic, that means it is possible that a ConfigurationDoneRequest comes after the LaunchRequest. This is problematic because only a ConfigurationDoneRequest indicates that all breakpoints have been registered and that a LaunchRequest is able to hit all those breakpoints. If the ConfigurationDoneRequest comes after the LaunchRequest some breakpoints might be missed.

There are two scenarios to consider:

  1. An InitializedEvent is sent early (after the InitializeRequest has been processed but before the LaunchRequest). This is used in mono-debug and mock-debug where breakpoints can be registered before launching the debuggee.
  2. An InitializedEvent is sent late (while the LaunchRequest is being processed). This is used in node-debug where node.js has to be launched first before breakpoints can be registered).

From the first case it looks like the frontend could always wait with calling LaunchRequest until ConfigurationDoneRequest has been ended. But this would not work with the second case.

/cc @isidorn

Metadata

Metadata

Assignees

Labels

debtCode quality issuesdebugDebug viewlet, configurations, breakpoints, adapter issues

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions