创建.NET程序Dump的几种姿势
当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用。在Windows、Linux或Azure上有许多方法可以生成转储文件。
Windows平台
dotnet-dump (Windows)
dotnet-dump全局工具是一种收集和分析.NET核心应用程序Dump的方法。
安装
dotnet-dump(必须要 .NET SDK) 或者 直接下载dotnet tool install --global dotnet-dump
使用
ps命令找到进程Iddotnet-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。
Visual Studio
如果你正在调试一个应用程序,你可以直接从Visual Studio保存一个转储文件。打开 "调试 "菜单,点击 "将转储另存为... "菜单项。

WinDbg
如果你正在使用WinDbg调试一个应用程序,你可以使用.dump命令来生成一个转储文件。/ma选项允许为所有连接的进程生成一个minidump:
.dump /ma [path]

Windows Error Reporting
Windows错误报告允许在应用程序崩溃时生成一个转储文件。你可以查看我以前关于它的帖子。出错时自动创建崩溃转储文件 "Tip: 在出错时自动创建一个崩溃转储文件"。
Linux
dotnet-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 Services
Azure允许我们为App服务生成和分析Dump文件。
选择你的应用程序服务
转到 "诊断和解决问题"
选择 "诊断工具"

选择 "收集内存转储"
点击 "收集内存转储 "按钮
几分钟后,转储在配置的存储账户中可用。

版权
原文版权:Meziantou
翻译版权:InCerry
原文链接:
https://www.meziantou.net/how-to-generate-a-dump-file-of-a-dotnet-application.htm
创建.NET程序Dump的几种姿势的更多相关文章
- SharePoint 2013 代码创建应用程序目录(App Catalog)
众所周知,SharePoint App是2013版本的一大特色,那么,关于App的分发有几种方式呢?SharePoint给我们提供了两种方式,一种是上载到SharePoint应用商店,另一种是在本地S ...
- Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口
sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...
- 创建多线程程序的第一种方式_创建Thread类的子类
创建多线程程序的第一种方式:创建Thread类的子类java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 ...
- 主线程和创建多线程程序的第一种方式_创建Thread类的子类
/** * 主线程:执行主方法的线程(main) * 单线程程序:在java程序中只有一个线程 * 执行从main方法开始,从上倒下依次执行 */ public class Demo01MainThr ...
- python HelloWorld 的 4 种姿势,你知道几种
安装完 Python 之后该干啥,当然是要 say HelloWorld 了. python.exe 就是个普通程序 和其它所有命令一样,在命令行中敲下 python 并回车的时候,操作系统去 PAT ...
- Python 高级特性介绍 - 迭代的99种姿势 与协程
Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...
- 浅谈OC对象初始化的三种姿势
一.普通程序猿普通程序员使用最常见路人姿势等场.普普通通,纯属陆仁辈. 陆仁贾写法: // view 1 UIView *v1 = [UIView alloc] initWithFrame:CGRec ...
- 改善C#程序,提高程序运行效率的50种方法
改善C#程序,提高程序运行效率的50种方法 转自:http://blog.sina.com.cn/s/blog_6f7a7fb501017p8a.html 一.用属性代替可访问的字段 1..NET ...
- 快速了解IOC的几种姿势
一.首先我们了解IOC如何注入的几种姿势 构造函数注入(Constructor Injection) Ioc容器会智能的选择和调用合适的构造函数以创建依赖的对象.如果被选择的构造函数具有相应的参数,I ...
随机推荐
- zabbix 报表动作日志 报错”503“
- Vue+Koa+MongoDB从零打造一个任务管理系统
大概是在18年的时候,当时还没有疫情.当时工作中同时负责多个项目,有 PC 端运营管理后台的,有移动端 M 站的,有微信小程序的,每天 git 分支切到头昏眼花,每个需求提测需要发送邮件,而且周五要写 ...
- 模拟赛:树和森林(lct.cpp) (树形DP,换根DP好题)
题面 题解 先解决第一个子问题吧,它才是难点 Subtask_1 我们可以先用一个简单的树形DP处理出每棵树内部的dis和,记为dp0[i], 然后再用一个换根的树形DP处理出每棵树内点 i 到树内每 ...
- identity4 系列————持久化配置篇[五]
前言 上面已经介绍了3个例子了,并且介绍了如何去使用identity. 但是在前面的例子中,我们使用的都是在内存中操作,那么正式上线可能需要持久到数据库中. 这里值得说明的是,并不一定一定要持久化到数 ...
- 058_末晨曦Vue技术_过渡 & 动画之过渡的类名
进入/离开 & 列表过渡 点击打开视频讲解更加详细 概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class ...
- Linux虚拟机快捷键大全
转发请注明原作者! 图形化命令框快捷键 Ctrl-Shift-t 创建标签页 Ctrl-Shift-w 关闭标签页 Ctrl-Shift-n 创建新窗口 Ctrl-Shift-q 关闭新窗口 Ctrl ...
- day32-线程基础02
线程基础02 3.继承Thread和实现Runnable的区别 从java的设计来看,通过继承Thread或者实现Runnable接口本身来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thre ...
- SpringBoot使用libreoffice转换PDF
1.简介 有时候我们需要在程序中使用到office的转换和预览功能,本文就针对这个需求记录了较为简单的office转换和功能:jodconverter.当然也有aspose和其他开源第三方(kkfil ...
- win10设置vmware 虚拟机开机自启
Windows10设置VMware虚拟机开机自启的具体步骤如下: 一.配置vmrun环境变量 1)找到VMware的安装目录,并将目录路径拷贝进入环境变量进行添加,如下图 2)检查添加的环境变量是否生 ...
- bat查找文件
举例如下 @dir > 1.txt /s /a /b d:\*.mp4 以后再作解释