microsoft / vscode-debugadapter-node

Debug adapter protocol and implementation for VS Code.
Other
273 stars 79 forks source link

Protocol support for "Just my code" #87

Closed roblourens closed 4 years ago

roblourens commented 8 years ago

We need a protocol method to mark/unmark files as library code, that will for now be triggered by the context menu item on the call stack. We can either use one method that sends the full set on each change, kind of like how setBreakpoints works, or we can have a pair of methods that mark/unmark one stack frame (or Source). If we work in stack frames, then it would be easier to do this for functions later.

Thoughts?

Like

setLibrarySources
  sources: Source[]

or

markAsLibraryCode
  frameId: number

unmarkAsLibraryCode
  frameId: number

Later if vscode itself had UI to show library code sources or patterns, then it would need to communicate that with Sources or strings, so that's worth keeping in mind too.

We also need a property on StackFrame returned from the debug adapter, isLibraryCode, needed so vscode knows which message to send.

And we need supportsJustMyCode to enable this context menu item.

gregg-miskelly commented 8 years ago

It might make sense to call this something other than supportsJustMyCode since a debug adapter can support various versions of Just-My-Code functionality without supporting this very script-centric set of API requests, and this might be confusing. Maybe supportsJustMyCodeDocuments?

weinand commented 8 years ago

Using a pair of methods (mark/unmark) makes sense here because the corresponding actions are tied to stack frames and they only exist if the debug adapter is running. So there is no need to buffer some state while the debug adapter is not running.

I will not introduce this addition as official protocol immediately for the reasons stated here. So I've moved this feature request to the backlog for now.

weinand commented 4 years ago

Since "Just my code" functionality could implemented in JS debuggers without DAP support I'm closing this.