Skip to content

Repository files navigation

Debugger for the .NET Core Runtime

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
Display method parameters in stack trace
Display in/ref/out parameter modifiers
Display active CLR internal frames in stack trace
Display human readable async stack trace
Display local constants (literals)
Use ToString() for object variable display
Inputting text into the target process
Source File Map
Module unload
Embedded PDB
Evaluation format specifiers
DebuggerBrowsable attribute 4
DebuggerDisplay attribute
DebuggerTypeProxy attribute
Using-directive awareness in type resolution
Pagination for variable children
MI/GDB and CLI protocols
Interop (Mixed) debug 5
Hot Reload 6
Cross Platform 7

1 From the VsDbg console output: "You may only use the Microsoft .NET Core Debugger (vsdbg) with Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you develop and test your applications."
2 Used only for the symbol reader, the C# expression parser, and primitive type evaluation.
3 Measured on macOS 26.6.2 using the vmmap utility on a simple application stopped at a breakpoint, with approximately 20 local variables and 10 evaluation requests. The debug session was started inside the VSCode IDE using the DAP protocol; NetCoreDbg was built without the interop and Hot Reload features.
4 Only the Never state for properties is supported.
5 Linux and Tizen operating systems only.
6 Available via the MI/GDB protocol only, and currently limited to the MSVS Tizen plugin.
7 Does not support musl-based Linux distros.

Development Process

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.

Contributing

Contributions are welcome! Please read our Contributing Guidelines to learn how you can report bugs, propose features, or contribute code changes through forks.

Building from Source Code

Usage

About

DNCDbg is a managed-code debugger for .NET applications with Debug Adapter Protocol (DAP) support.

Topics

Resources

Contributing

Stars

8 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages