Samsung / netcoredbg

NetCoreDbg is a managed code debugger with MI interface for CoreCLR.
MIT License
785 stars 103 forks source link

Support VSCode's Debug Adapter Protocol #1

Closed mickaelistria closed 6 years ago

mickaelistria commented 6 years ago

In order to make this debugger easily usable in VSCode and other IDEs (such as Eclipse IDE) supporting the VSCode Debug Adapter Protocol ( https://github.com/Microsoft/vscode-debugadapter-node/tree/master/protocol ), it would be nice to provide the option ot have netcoredbg read/write content conforming to this protocol. For example, vsdbg has a vsdbg-ui executable which talks over the debug protocol instead of starting gdb console; and OmniSharp simply uses it as debugger in VSCode, which is then able to do most of the work: https://github.com/OmniSharp/omnisharp-vscode/blob/4dd381fa5e4b1e81266d4796d641d1bf2785d2c8/src/coreclr-debug/activate.ts#L155

ayuckhulk commented 6 years ago

Hello! Thanks for the suggestion :smiley: This feature is planed for this year, but I can not be more specific since the roadmap for this year is not ready yet.

eloraiby commented 6 years ago

Any progress on this front ?

ayuckhulk commented 6 years ago

Implementation is mostly finished (in our internal repo). It may take up to several weeks to release the code to the public.

ayuckhulk commented 6 years ago

@mickaelistria @eloraiby The change has landed in the repo, please check if it works for you.

You can use the guide here https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes but set "debuggerPath" to netcoredbg binary.

mickaelistria commented 6 years ago

Thanks for this. I don't think I have the bandwidth to deal with local build of the project as it's currently purely experimental so I can't assign much time on it. I think I'll be able to try it more easily as soon as #3 is fixed.

mickaelistria commented 6 years ago

I could try it and get the dotnet debugger working over the Debug Adapter Protocol in Eclipse IDE ! Awesome and thanks a lot!

mickaelistria commented 6 years ago

I've made a demo video about this integration: http://www.screencast.com/users/mistria/folders/Default/media/23b83e66-6219-4ca8-89fd-1a1cf245aa48 and tweeted about it https://twitter.com/mickaelistria/status/1016269152296820736 Thanks a lot to netcoredbg for making this possible without requiring ton of work on client side!