title | description | ms.date | ms.topic |
---|---|---|---|
.NET Diagnostic tools overview |
An overview of the tools available to diagnose .NET Core applications. |
06/8/2023 |
overview |
.NET supports a number of tools that can be used to diagnose your applications.
Visual Studio is the most comprehensive IDE for .NET developers on Windows. It includes debugging and performance profiling tools to aid .NET developers in diagnosing their applications.
Visual Studio Code is a lightweight but powerful source code editor that runs on your desktop and is available for Windows, macOS, and Linux. It supports local and remote debugging for .NET.
dotnet-counters is a performance monitoring tool for first-level health monitoring and performance investigation. It observes performance counter values published via the xref:System.Diagnostics.Tracing.EventCounter API. For example, you can quickly monitor things like the CPU usage or the rate of exceptions being thrown in your .NET Core application.
The dotnet-dump tool is a way to collect and analyze Windows and Linux core dumps without a native debugger.
The dotnet-gcdump tool is a way to collect garbage collector (GC) dumps of live .NET processes.
The dotnet-monitor tool is a way to monitor .NET applications in production environments and to collect diagnostic artifacts (for example, dumps, traces, logs, and metrics) on-demand or using automated rules for collecting under specified conditions.
.NET Core includes EventPipe
, which exposes diagnostics data. The dotnet-trace tool allows you to consume interesting profiling data from your app that can help in scenarios where you need to root-cause apps running that are running slowly.
The dotnet-stack tool allows you to quickly print the managed stacks for all threads in a running .NET process.
dotnet-symbol downloads files (for example, symbols, DAC/DBI, and host files) needed to open a core dump or minidump. Use this tool if you need symbols and modules to debug a dump file captured on a different machine.
dotnet-sos installs the SOS debugging extension on Linux and macOS (and on Windows if you're using Windbg/cdb).
PerfCollect is a bash script you can use to collect traces with perf
and LTTng
for a more in-depth performance analysis of .NET apps running on Linux distributions.