创建.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 ...
随机推荐
- 「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心)
题面 来源 「 雅 礼 集 训 2017 D a y 7 」 跳 蚤 王 国 的 宰 相 传 统 2000 m s 1024 M i B {\tt「雅礼集训 2017 Day7」跳蚤王国的 ...
- multiprocessing 让子进程忽略信号,手动关闭子进程
起因 同事想要写一个代码,主进程中监听SIGINT.SIGTERM信号退出,并关闭启动的子进程,代码类似这样 import signal import sys import time from mul ...
- day36-IO流03
JavaIO流03 4.常用的类02 4.4节点流和处理流 4.4.1基本介绍 节点流可以从一个特定的数据源读写数据,如FileReader.FileWriter 数据源就是存放数据的地方,比如文件. ...
- 【pytest官方文档】解读- 如何安装和使用插件
本节讨论安装和使用第三方插件.关于编写自己的插件,我们下一章继续. 一.pip 安装 就像安装一些其他第三方库一样,使用pip也可以很容易地安装第三方插件,pytest-NAME这是你要安装的插件名称 ...
- 硬核剖析Redis单线程为什么那么快?
(本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术,助力职业发展) Redis目前是使用率最高的内存库数据库,是企业应用开发的必备, ...
- Lua CallbackHell优化
概述 在异步操作中,常常要使用回调.但是,回调的嵌套常常会导致逻辑混乱,一步错步步错,难以维护.在Lua中,可以使用协程进行优化. 问题分析 模拟一个回合制游戏攻击过程 local function ...
- [Python]-numpy模块-机器学习Python入门《Python机器学习手册》-01-向量、矩阵和数组
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- Scrum五大会议要怎么开?
在Scrum框架中,我们对Scrum的五个会议一定都不陌生,但如何组织这五个会议,才能让Scrum团队真正积极.主动地参与进项目管理中呢?接下来我们会以一个Sprint为周期,详细介绍一下Sprint ...
- 类似微信聊天小程序-网易云信,IM DEMO小程序版本
类似微信聊天小程序-网易云信,IM DEMO小程序版本 代码地址: https://github.com/netease-im/NIM_Web_Weapp_Demo 云信IM DEMO 小程序版本 ( ...
- Elasticsearch: 使用URI Search
在Elasticsearch中,我们可以使用_search终端进行搜索.这个在我之前的文章 "开始使用Elasticsearch (2)" 中有很多的描述.针对这种搜索,我们可以使 ...