当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用 。在Windows、Linux或Azure上有许多方法可以生成转储文件 。
Windows平台dotnet-dump (Windows)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>
文章插图
Windows 任务管理器
- 按下
Ctrl+Shift+Esc
打开 Windows 任务管理器 - 选择"详细信息"选项卡
- 在列表中找到你的应用程序
- 右击它,然后选择 "创建转储文件"
文章插图
文章插图
SysInternals - Process Explorer
- 下载 Process Explorer: Process Explorer
- 打开 Process Explorer
- 右击进程选择 "Create Dump" 项
文章插图
]
SysInternals - ProcDump (Windows)
ProcDump
是一个命令行工具,当应用程序假死或进程使用太多的CPU时,可以生成一个Dump文件 。- 下载 ProcDump: ProcDump
- 使用进程名或者进程Id创建dump
procdump notepad
procdump 4572
文章插图
调试诊断工具调试诊断工具允许在满足某个条件时生成一个转储文件 。例如,当应用程序崩溃或CPU使用率高时,它可以生成一个Dump文件 。
- 下载 Debug Diagnostic Tool v2 Update 3
- 点击 "DebugDiag 2 Collection" (在开始菜单中可用)
- 配置一个规则,比如说当应用程序崩溃的时候
- 当条件得到满足时,会在配置的文件夹中生成一个崩溃Dump 。
文章插图
WinDbg如果你正在使用WinDbg调试一个应用程序 , 你可以使用
.dump
命令来生成一个转储文件 。/ma
选项允许为所有连接的进程生成一个minidump:.dump /ma [path]
文章插图
Windows Error ReportingWindows错误报告允许在应用程序崩溃时生成一个转储文件 。你可以查看我以前关于它的帖子 。出错时自动创建崩溃转储文件 "Tip: 在出错时自动创建一个崩溃转储文件" 。
Linuxdotnet-dump (Linux)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>
文章插图
SysInternals - ProcDump (Linux)ProcDump是一个命令行工具,当应用程序冻结或使用太多的CPU时 , 可以生成一个Dump文件 。
- 下载 ProcDump for Linux: ProcDump For Linux
- 使用进程名或者进程Id创建dump
procdump 4572
文章插图
Azure App ServicesAzure允许我们为App服务生成和分析Dump文件 。
- 选择你的应用程序服务
- 转到 "诊断和解决问题"
- 选择 "诊断工具"
文章插图
- 选择 "收集内存转储"
- 【创建.NET程序Dump的几种姿势】点击 "收集内存转储 "按钮
- 几分钟后,转储在配置的存储账户中可用 。
文章插图
推荐阅读
- 不是有效Win32应用程序的解决方法(win32应用程序)
- 不是有效的win32应用程序怎么解决(不是有效的win32应用程序怎么恢复)
- 1%不是有效的win32应用程序怎么解决
- C# 8.0 添加和增强的功能【基础篇】
- .NET性能系列文章二:Newtonsoft.Json vs. System.Text.Json
- 某 .NET RabbitMQ SDK 有采集行为,你怎么看?
- 创建外部表步骤及解决ORA-29913:执行ODCIETTABLEOPEN调出时出错
- .net core Blazor+自定义日志提供器实现实时日志查看器
- 学习ASP.NET Core Blazor编程系列九——服务器端校验
- 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践