Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete the support for Microsoft Debugger Adapter Protocol in Theia #8383

Closed
14 of 19 tasks
slemeur opened this issue Jan 21, 2018 · 9 comments
Closed
14 of 19 tasks

Complete the support for Microsoft Debugger Adapter Protocol in Theia #8383

slemeur opened this issue Jan 21, 2018 · 9 comments
Assignees
Labels
kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed.

Comments

@slemeur
Copy link
Contributor

slemeur commented Jan 21, 2018

Goals

Provides debugger support for the next generation Che's IDE.

Description

Theia will be used for the foundation of the new IDE provided with the next gen Che (#8266). This new IDE does not provide Debugger capabilities for the time being. There are some plans to implement the Debug Adapter Protocol (https://github.com/Microsoft/vscode-debugadapter-node), but we'll need to study how this will impact the next generation Che.

https://code.visualstudio.com/docs/extensions/example-debuggers

Tasks

Establish Debug Sessions

Threads

Suspend/Resume Actions

Stack Frame Variables

Watch expressions

  • add/remove/edit watch expressions, evaluate them automatically in selected frame.

Step actions

Breakpoints

Line Breakpoint

Function Breakpoint eclipse-theia/theia#3312 (Typefox)

  • create
  • display in editor
@slemeur slemeur added the kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. label Jan 21, 2018
@slemeur slemeur changed the title Debug Server Protocol Debug Adapter Protocol Jan 21, 2018
@tsmaeder tsmaeder self-assigned this Feb 12, 2018
@tolusha tolusha self-assigned this Feb 19, 2018
@tolusha
Copy link
Contributor

tolusha commented Feb 19, 2018

@tsmaeder
I've added a list of tasks without clarification to know if we go in right direction.

@tsmaeder
Copy link
Contributor

tsmaeder commented Feb 23, 2018

Here are a couple of thoughts about self hosting:

  • We need to be able to debug sidecars.
    • How do we connect to them.
    • How is che-in-che launched?
    • How do we launch debug adapters (if necessary)?
    • How do we connect to the debug network addresses?
  • Minimal Feature list
    • Multiple debug targets at the same time (minimum: Theia, Che server, jdt.ls sidecar)
    • Connect to che in che debug targets
    • Line breakpoints
    • List of threads Show Threads of Debug Target #9421 Show Threads of Debug Target
    • Source lookup & display line
    • Display Call stack of stopped thread Display Thread Stack #9423 Display Thread Stack
    • Display stack frame variables
    • Thread Stop/Resume action Suspend/Resume Actions #9424 Suspend/Resume Actions
    • Step over/into(/out)

@mkwork
Copy link

mkwork commented Mar 27, 2018

Hello.
I've reviewed debug adapter protocol in case of it's integration with vim or emacs and have found out some vendor lock in.
While in the LSP all capabilities and possible outputs are defined in the protocol itself, vscode debugging api is split into two parts:

  • D(ebug)A(adapter)P(protocol) server
  • Extension part with full support of vscode api

While DAP part implementation strategy is clear, Extension part can potentially call any of vscode api. So there is no way to reuse vscode extensions without support of vscode api in general.

Please be aware of this.

I think, that DAP protocol part could get some kick start part of a really open specification. Humble individual like me can't support and promote such a great thing. I can only contribute only. But I believe a project like yours is able to implement such great effort.

@slemeur
Copy link
Contributor Author

slemeur commented Apr 4, 2018

Cross linking to: eclipse-theia/theia#1573

@tsmaeder
Copy link
Contributor

@mkwork I don't think straight up reuse of VSCode is a target here, AFAIK, the plugin model is quite different. We would like to reuse the debug adapter executables, though.

@mkwork
Copy link

mkwork commented Apr 13, 2018

@tsmaeder Yep. I talk about reusing debug adapters. Them can be rely on vscode extension part. Imho, thats a reason why there are tons of open LSP extensions, and few open extensions for DAP. And no more frontends for DAP as I know.

@tsmaeder
Copy link
Contributor

tsmaeder commented Apr 13, 2018

Implementation task & epics

#8929 Connect to Debug Target
#9421 Show Threads
#9423 Display Stack Frames
#9424 Suspend/Resume Action

@l0rd l0rd changed the title Debug Adapter Protocol Complete the support for Microsoft Debugger Adapter Protocol in Theia Oct 3, 2018
@benoitf
Copy link
Contributor

benoitf commented Apr 23, 2019

@tolusha @tsmaeder should we close this issue ?

@tsmaeder
Copy link
Contributor

I guess that would be up to @slemeur

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed.
Projects
None yet
Development

No branches or pull requests

5 participants