原文:
https://docs.microsoft.com/zh-cn/dotnet/core/diagnostics/
软件并非始终按预计方式运行,但 .NET Core 具有可帮助用户快速有效地诊断这些问题的工具和 API。
本文可帮助用户查找各种所需的工具。
托管调试器
调试器是诊断易于重现的功能问题的首选。
日志记录和跟踪
当与时间戳结合使用时,这些技术在性能调查中也非常有用。
指标
已知 EventCounters,你也可以对其进行监视。
单元测试
单元测试的目的在于,在用户操作导致系统出现问题时提前向其发出警告。
转储
它们可用于检查应用程序的状态,以便进行调试。
符号
.NET 可移植符号具有类似于 Windows PDB 的“PDB”文件扩展名,但并不与 Windows PDB 格式兼容。
收集容器中的诊断
只需进行几次使用更改就可使这些工具在 Docker 容器中运行。
.NET Core 诊断全局工具
dotnet-counters
例如,可以【快速监视 CPU 使用情况或 .NET Core 应用程序中的异常率等指标】。
dotnet-dump
dotnet-dump 工具,可在【不使用本机调试】器的情况下【收集和分析 Windows 和 Linux 核心转储】。
dotnet-gcdump
dotnet-gcdump 工具可用于为【活动 .NET 进程收集 GC(垃圾回收器)转储】。
dotnet-trace
dotnet-trace 工具,可以使用来自【应用的有意思的分析数据】,这些数据可帮助你【分析应用运行缓慢的根本原因】。
dotnet-symbol
如果需要【使用符号和模块来调试】在其他计算机上捕获的转储文件,请使用此工具。
dotnet-sos
SOS调试扩展。
PerfCollect
PerfCollect 是一个 bash 脚本,可用于【收集包含 perf 和 LTTng 的跟踪】,以便更深入地分析【在 Linux 分发版上运行的 .NET 应用的性能】。
.NET Core 诊断教程
调试内存泄露
dotnet-dump 工具用于【诊断泄露】。
调试高 CPU 使用率
性能分析实用工具 (dotnet-trace) 跟踪或 Linux perf 来收集和查看 CPU 使用率配置文件】。
调试死锁
dotnet-dump 工具来【调查线程和锁】。
调试 StackOverflow
StackOverflowException】。
调试 Linux 转储
调试 Linux 转储说明了如何【收集和分析 Linux 上的转储】。
使用 EventCounters 衡量性能
EventCounter API 来【衡量 .NET 应用的性能】。