DNCDbg is an acronym for .NET Core (dot net core) Debugger. It implements the Debug Adapter Protocol, allowing you to debug .NET applications running on all versions of the .NET runtime.
Initially, DNCDbg was based on version 3.1.3 of the NetCoreDbg source code, but unlike NetCoreDbg, its development is fully hosted on GitHub, making it more collaborative and flexible.
Project goals: implement functionality close to that of the MSVS C# debugger (excluding features related to the MSVS IDE and those not supported by DAP), provide complete Debug Adapter Protocol support, and achieve low memory consumption and high performance.
See the current Debug Adapter Protocol support status.
| DNCDbg | NetCoreDbg | VsDbg | |
|---|---|---|---|
| License | MIT | MIT | Commercial1 |
| Implementation | C++ | C++ and C#2 | C# |
| Physical memory footprint3 | 11.7M | 52.4M | 146.8M |
| Cross-platform | ✅ | ||
| Human-readable async stack traces | ✅ | ❌ | ✅ |
Use ToString() for object variable display |
✅ | ❌ | ✅ |
DebuggerBrowsable attribute |
✅ | ✅ | |
DebuggerDisplay attribute |
✅ | ❌ | ✅ |
DebuggerTypeProxy attribute |
✅ | ❌ | ✅ |
| Evaluation format specifiers | ✅ | ❌ | ✅ |
| Logpoints | ✅ | ❌ | ✅ |
| Embedded PDB | ✅ | ❌ | ✅ |
| Embedded sources | ✅ | ❌ | ✅ |
| Source File Map | ✅ | ❌ | ✅ |
| Standard input redirection (STDIN) | ✅ | ❌ | ✅ |
| Jump to Cursor (Set Next Statement) | ✅ | ❌ | ✅ |
| Single-thread execution and stepping | ✅ | ❌ | ❓ |
| MI/GDB and CLI protocols | ❌ | ✅ | ❌ |
| Mixed-mode (interop) debugging | ❌ | ❓ | |
| Hot Reload | ❌ | ❓ | |
| View Full Comparison Table | |||
The project uses Trunk-Based Development, which means you can build the current upstream code and be sure you have the latest version with all features and fixes included. Upcoming changes can be found in CHANGELOG.md.
Contributions are welcome! Please read our Contributing Guidelines to learn how you can report bugs, propose features, or contribute code changes through forks.