SharpDbg is a .NET managed code debugger supporting the Debug Adapter Protocol, implemented completely in C#/.NET
C#
341
897 commits
updated Sep 15, 2026
An open source, cross platform .NET debugger implementing the VS Code Debug Adapter Protocol (DAP), completely written in C#!
SharpDbg uses the ClrDebug managed wrapper around the ICorDebug APIs.
SharpDbg is available on NuGet as a .NET Tool: https://www.nuget.org/packages/SharpDbg.Cli
dotnet tool install --global SharpDbg.Cli
Once installed, run it using:
sharpdbg --interpreter=vscode
The in memory library is also published to NuGet: https://www.nuget.org/packages/SharpDbg
| SharpDbg | netcoredbg | |
|---|---|---|
| Implementation | C# | C++ with interop to C# where necessary |
| Cross Platform | ✅ | ✅ |
| Expression Evaluation | ✅ | ✅ |
| DebuggerBrowsable Support | ✅ | ✅ |
| DebuggerDisplay Support | ✅ | ❌ |
| DebuggerTypeProxy Support | ✅ | ❌ |
SharpDbg is organized into three main components:
┌─────────────────────────────────────────────────────────┐
│ VS Code / DAP Client │
└────────────────────────────┬────────────────────────────┘
│ DAP (stdin/stdout)
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Cli │
│ • Entry point and command-line argument handling │
│ • DAP protocol client initialization │
└────────────────────────────┬────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Application │
│ • DAP protocol implementation │
│ • VS Code protocol message handlers │
│ • Event communication (stopped, continued, etc.) │
└────────────────────────────┬────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Infrastructure │
│ • Core debugger engine (ManagedDebugger) │
│ • ICorDebug API wrapper (ClrDebug) │
│ • Breakpoint and variable management │
│ • Expression evaluator (compiler + interpreter) │
└─────────────────────────────────────────────────────────┘
dotnet buildThis will produce the debug adapter executable at artifacts/bin/SharpDbg.Cli/Debug/net10.0/SharpDbg.Cli.exe, equivalent to netcoredbg.exe
[DebuggerDisplay("Count = {Count}")]
public class List<T> : IList<T>, IList, IReadOnlyList<T>
[DebuggerTypeProxy(typeof(ICollectionDebugView<>))]
public class List<T> : IList<T>, IList, IReadOnlyList<T>
432 followers · starred Jan 2026
221 followers · starred Jan 2026
607 followers · starred Jan 2026
188 followers · starred Jan 2026
SharpDbg is a .NET managed code debugger supporting the Debug Adapter Protocol, implemented completely in C#/.NET
C#
341
897 commits
updated Sep 15, 2026
An open source, cross platform .NET debugger implementing the VS Code Debug Adapter Protocol (DAP), completely written in C#!
SharpDbg uses the ClrDebug managed wrapper around the ICorDebug APIs.
SharpDbg is available on NuGet as a .NET Tool: https://www.nuget.org/packages/SharpDbg.Cli
dotnet tool install --global SharpDbg.Cli
Once installed, run it using:
sharpdbg --interpreter=vscode
The in memory library is also published to NuGet: https://www.nuget.org/packages/SharpDbg
| SharpDbg | netcoredbg | |
|---|---|---|
| Implementation | C# | C++ with interop to C# where necessary |
| Cross Platform | ✅ | ✅ |
| Expression Evaluation | ✅ | ✅ |
| DebuggerBrowsable Support | ✅ | ✅ |
| DebuggerDisplay Support | ✅ | ❌ |
| DebuggerTypeProxy Support | ✅ | ❌ |
SharpDbg is organized into three main components:
┌─────────────────────────────────────────────────────────┐
│ VS Code / DAP Client │
└────────────────────────────┬────────────────────────────┘
│ DAP (stdin/stdout)
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Cli │
│ • Entry point and command-line argument handling │
│ • DAP protocol client initialization │
└────────────────────────────┬────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Application │
│ • DAP protocol implementation │
│ • VS Code protocol message handlers │
│ • Event communication (stopped, continued, etc.) │
└────────────────────────────┬────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────┐
│ SharpDbg.Infrastructure │
│ • Core debugger engine (ManagedDebugger) │
│ • ICorDebug API wrapper (ClrDebug) │
│ • Breakpoint and variable management │
│ • Expression evaluator (compiler + interpreter) │
└─────────────────────────────────────────────────────────┘
dotnet buildThis will produce the debug adapter executable at artifacts/bin/SharpDbg.Cli/Debug/net10.0/SharpDbg.Cli.exe, equivalent to netcoredbg.exe
[DebuggerDisplay("Count = {Count}")]
public class List<T> : IList<T>, IList, IReadOnlyList<T>
[DebuggerTypeProxy(typeof(ICollectionDebugView<>))]
public class List<T> : IList<T>, IList, IReadOnlyList<T>
432 followers · starred Jan 2026
221 followers · starred Jan 2026
607 followers · starred Jan 2026
188 followers · starred Jan 2026