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

Unify the .NET platform debugger story #13

Open
ghuntley opened this issue Nov 22, 2021 · 2 comments
Open

Unify the .NET platform debugger story #13

ghuntley opened this issue Nov 22, 2021 · 2 comments

Comments

@ghuntley
Copy link
Member

ghuntley commented Nov 22, 2021

overview

What use is an open-source programming language that can only be debugged with proprietary software? This is not a problem for languages that .NET competes against in mindshare (Golang/Rust). Why did dnSpy, MonoDevelop, Linqpad, JetBrains & Samsung have to reinvent the wheel? It's 2021 and the .NET platform is fractured at a foundational level.

https://github.com/OmniSharp/omnisharp-vscode/wiki/Microsoft-.NET-Core-Debugger-licensing-and-Microsoft-Visual-Studio-Code

options

  • The now archived+retired project dnSpy has a powerful .NET debugger and is one of the most advanced as it supports the impressive stuff , like tuple element names and async stepping. Unfortunately it is released under GPLv3 license whereas the rest of the platform is released under MIT. Maybe the author would consider relicensing this component?
  • Samsung has a debugger that provides GDB/MI and VSCode Debug Adapterprotocol and allows to debug .NET apps under .NET Core runtime. It is released under MIT.
  • Jetbrains could do the community a solid and open-source their debugger.
  • Microsoft could do the community a solid and open-source their debugger.
  • MonoDevelop has a .NET debugger (which needs work)

discussions

More people should be pissed off about the debugger situation - @directhex

relevant issues

additional material

@filipnavara
Copy link

Note that there is couple of active dnSpy forks, eg. https://github.com/dnSpyEx/dnSpy.

@anaisbetts
Copy link

https://github.com/dotnet/diagnostics/tree/main/src/SOS is a very relevant piece of code here, it is the low-level guts of what you would use to implement a debugger specifically for .NET, it's even tied to lldb so technically .NET has a fully open-source debugger, just not one that's very pleasant to use.

I suspect that the best way forward here would be to find a nice lldb frontend (kdbg maybe?) and try to start adding UI for SOS commands

@ghuntley ghuntley mentioned this issue Nov 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants