转储
转储是一种文件,其中包含创建转储时该进程的快照,可用于检查应用程序的状态。 当很难将调试程序附加到 .NET 应用程序(如生产或 CI 环境)时,可使用转储来调试该应用程序。 使用转储可以捕获有问题进程的状态,并且可以直接检查状态而无需停止应用程序。
收集转储
可以通过多种方式收集转储,具体取决于运行应用的平台。
注意
转储可能包含敏感信息,因为它们可以包含正在运行进程的全部内存。 处理它们时请考虑所有安全限制和指导。
提示
有关转储集合、分析和其他注意事项的常见问题,请参阅转储:常见问题解答。
可以使用环境变量将应用程序配置为在发生故障时收集转储。
你可能需要在应用尚未发生故障时收集转储。 例如,如果想要检查似乎处于死锁状态的应用程序的状态,则配置环境变量以在发生故障时收集转储将不起作用,因为应用仍在运行。
dotnet-dump 是一种用于收集转储的简单跨平台命令行工具。 其他几个调试器工具(如 Visual Studio 或 windbg)也具有转储收集功能。
如果在生产环境中运行应用,或者以分布式方式(多个服务、副本)运行应用,则 dotnet-monitor 为许多常见方案和即席诊断调查(包括转储收集和出口)提供支持。 它允许远程收集转储或触发条件收集转储。
分析转储
导航到“调试 Linux 转储”,了解有关分析 Linux 上收集的转储的信息。
导航到 “调试 Windows 转储 ”,了解有关分析 Windows 上收集的转储的信息。
内存分析
如果应用的内存继续增长,则可以对应用程序执行内存分析,但你不确定为什么会这样。 调试内存泄漏教程演示如何使用 dotnet CLI 工具以及 dotnet-sos 命令转储和 gcroot 调试内存泄漏。
Visual Studio 内存分析可用于诊断 Windows 上的内存泄漏。
另请参阅
详细了解如何利用转储来帮助诊断 .NET 应用程序中的问题。
调试 Linux 转储这一教程分步演示了如何调试在 Linux 中收集的转储。
调试死锁这一教程分步演示了如何使用转储来调试 .NET 应用程序中的死锁。