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

Debugger #102

Closed
1 of 11 tasks
mickaelistria opened this issue Dec 21, 2017 · 9 comments
Closed
1 of 11 tasks

Debugger #102

mickaelistria opened this issue Dec 21, 2017 · 9 comments

Comments

@mickaelistria
Copy link
Contributor

mickaelistria commented Dec 21, 2017

Latest snapshot of LSP4E has support for VSCode Debug Adapter. Omnisharp has an implementation of the protocol at https://github.com/OmniSharp/omnisharp-vscode/blob/26508b3b3a27b42e6fc1c5883948686723385007/src/coreclr-debug/proxy.ts .

aCute should use the Debug Protocol adapter in LSP4E to connect to the debugger provided by OmniSharp.

Iterations:

  • Use LSP4E Debug to connect to debugger directly, share resulting Launch Configuration here
  • Once connected, identify potential blockers for usage and fix them
    • Build before debug
  • create dedicated Debug configs with empty fields for debugger
    • Launch program
    • Attach to program
    • Debug tests
  • Include debugger
    • package debugger as fragments (platform-specific)
    • make debugger settings pre-set if debugger is installed.
    • Create CQ for debugger
@mickaelistria
Copy link
Contributor Author

cc @LucasBullen

@mickaelistria
Copy link
Contributor Author

Current blocker is that there seems to be a restriction about which IDEs (Microsoft ones only) are allowed to use the debugger:
screenshot from 2018-01-09 14-50-33

@mickaelistria
Copy link
Contributor Author

The vendor lock-in is clear and previous negotiations with Microsoft to get rid of it over the last months have failed. So at the moment, relying on vsdbg seems to be a dead end.
Some other paths to consider:

  • Using https://github.com/Samsung/netcoredbg (not sure how it can integrate with Omnisharp debug adapter)
  • Track progress using LLVM+SOS to debug .NET, but it seems like it's quite immature and not very likely to be good soon, and even less likely to have support for Debug Adapter protocol soon...

@mickaelistria
Copy link
Contributor Author

We can now try https://github.com/Samsung/netcoredbg/releases which has support for DAP.

@mickaelistria
Copy link
Contributor Author

And this can work!
dotnetdebug

@mickaelistria
Copy link
Contributor Author

Samsung/netcoredbg#4 would be necessary at some point, but 1st thing would be to create a dedicated Debug Configuration for .NET projects.

mickaelistria added a commit to mickaelistria/aCute that referenced this issue Jul 1, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
@mickaelistria mickaelistria self-assigned this Jul 1, 2018
@mickaelistria
Copy link
Contributor Author

mickaelistria added a commit to mickaelistria/aCute that referenced this issue Jul 2, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
mickaelistria added a commit that referenced this issue Jul 4, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
mickaelistria added a commit that referenced this issue Jul 4, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
mickaelistria added a commit that referenced this issue Jul 4, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
@mickaelistria
Copy link
Contributor Author

I've pushed 2 patches that enable specific debug configurations (run and debug process or attach debugger to existing process). Those do work well; although some UI could be improved.
They're tested with http://github.com/Samsung/netcoredbg as debugger (the path to this debugger can be configured in the dedicated tab of the debug configuration).

On another patch on my local branch https://github.com/mickaelistria/aCute/tree/102-debugger , I also created fragments to directly include and ship the debugger. While this is still WIP and incomplete, I think we should ship those ASAP for best UX. So I did open https://dev.eclipse.org/ipzilla/show_bug.cgi?id=16871 to get necessary permission.
The debugger currently misses the Windows binary ( Samsung/netcoredbg#4 ) and doesn't ship 32-bits support (but I don't think we care much about 32 bits).

mickaelistria added a commit that referenced this issue Jul 6, 2018
* Packaging
* Improved UI (Launch config, shortcut), add validation
* Simplify Delegate

Signed-off-by: Mickael Istria <mistria@redhat.com>
mickaelistria added a commit to mickaelistria/aCute that referenced this issue Jul 6, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
mickaelistria added a commit to mickaelistria/aCute that referenced this issue Jul 6, 2018
Signed-off-by: Mickael Istria <mistria@redhat.com>
@mickaelistria
Copy link
Contributor Author

This is now done and available from http://download.eclipse.org/acute/snapshots .
I'll work on a video demo and post it to appropriate channels, including this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant