当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用。在Windows、Linux或Azure上有许多方法可以生成转储文件。
dotnet-dump全局工具是一种收集和分析.NET核心应用程序Dump的方法。
安装 dotnet-dump
(必须要 .NET SDK) 或者 直接下载
dotnet tool install --global dotnet-dump
使用ps
命令找到进程Id
dotnet-dump ps
通过指定的进程id创建dump文件
dotnet-dump collect --process-id <ProcessId>
Ctrl+Shift+Esc
打开 Windows 任务管理器]
ProcDump
是一个命令行工具,当应用程序假死或进程使用太多的CPU时,可以生成一个Dump文件。
下载 ProcDump: ProcDump
使用进程名或者进程Id创建dump
procdump notepad
procdump 4572
调试诊断工具允许在满足某个条件时生成一个转储文件。例如,当应用程序崩溃或CPU使用率高时,它可以生成一个Dump文件。
如果你正在调试一个应用程序,你可以直接从Visual Studio保存一个转储文件。打开 "调试 "菜单,点击 "将转储另存为... "菜单项。
如果你正在使用WinDbg调试一个应用程序,你可以使用.dump
命令来生成一个转储文件。/ma
选项允许为所有连接的进程生成一个minidump:
.dump /ma [path]
Windows错误报告允许在应用程序崩溃时生成一个转储文件。你可以查看我以前关于它的帖子。出错时自动创建崩溃转储文件 "Tip: 在出错时自动创建一个崩溃转储文件"。
dotnet-dump全局工具是一种收集和分析.NET核心应用程序转储的方法。
安装 dotnet-dump
(必须 .NET SDK) 或者 下载它
dotnet tool install -g dotnet-dump
使用下面的命令找到进程Id
dotnet-dump ps
通过指定的进程id创建dump文件
dotnet-dump collect --type heap --process-id <ProcessId>
ProcDump是一个命令行工具,当应用程序冻结或使用太多的CPU时,可以生成一个Dump文件。
下载 ProcDump for Linux: ProcDump For Linux
使用进程名或者进程Id创建dump
procdump 4572
Azure允许我们为App服务生成和分析Dump文件。
选择你的应用程序服务
转到 "诊断和解决问题"
选择 "诊断工具"
选择 "收集内存转储"
点击 "收集内存转储 "按钮
几分钟后,转储在配置的存储账户中可用。
原文版权:Meziantou
翻译版权:InCerry
原文链接:
https://www.meziantou.net/how-to-generate-a-dump-file-of-a-dotnet-application.htm