dotnet-dump安装、收集dump和崩溃自动收集dump

news/2025/11/30 0:08:24/文章来源:https://www.cnblogs.com/pains/p/19287804

继续写点基础的东西,因为基础的东西能带新手入门,入门后的事情其实是比较简单的。

我们开发dotnet程序后运行时经常出问题,比如cpu高、内存高、崩溃等问题,分析的方法就是使用dotnet的那套分析工具,今天以dotnet-dump为例,简单说下从安装到收集的操作步骤。

1.安装SDK

dotnet分析工具需要dotnet sdk环境,所以需要先安装sdk,以docker下Debian系统为例。参考地址是这个:
https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-debian?tabs=dotnet10

  • 先安装wget
apt update
apt install wget
  • 再添加包存储库,我删除了sudo,搜索也需要先安装sudo命令
wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
  • 安装sdk,下面代码是sdk10的,如果需要其他版本直接改版本号就行
sudo apt-get update && \sudo apt-get install -y dotnet-sdk-10.0

2.安装dotnet-dump和收集dump

参考文档
https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-dump#dotnet-dump-analyze

dotnet tool install --global dotnet-dump

现在找到要dump的dotnet进程id,如果在docker里只运行一个dotnet程序,那么这个id一般都是1,也可以先ps命令找下。

dotnet-dump ps
dotnet-dump collect -p 1

这个collect就是收集,它根据dotnet进程内存大小需要一些时间,完成后就会提示收集的dump文件路径,等会就用analyze命令分析它,今天不是主要讲怎么分析,所以略过。

3.崩溃自动收集dump

参考文档
https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/collect-dumps-crash
这个的目的就是当dotnet程序因为一些无法继续的异常发生时,如堆栈溢出、未捕获的异常等会导致程序崩溃(结束进程,有守护进程会重新启动一个新的),自动收集dump,以便分析程序崩溃的原因。
这个非常简单,主要就时加一个环境变量

DOTNET_DbgEnableMiniDump=1

还有个环境变量也很重要,就是DOTNET_EnableCrashReport=1,它会使得在崩溃收集dump时还生成一个json,存储所有线程的信息(大部分时堆栈),里面有个关键的信息就是"crash":"true",它表示这个线程是引起崩溃的线程,崩溃的情况下,这个json里肯定有个线程是带"crash":"true"的,其他线程都是"crash":"false",所以在这个json里搜索这个就很快定位的引起崩溃的线程,以便在dump文件中快速定位问题原因。
用这个办法,我在工作中找到了很多次问题,有时还是线上环境的问题,都是写的代码错误导致,非常有用。

完。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/981324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机运行Vivado,部分界面显示不完全的问题

虚拟机运行Vivado,部分界面显示不完全的问题此文解决虚拟机运行Vivado,部分界面显示不完全的问题。 情况如下:解决方案:拖动这个边框当当 解决了:

《程序员修炼之道》笔记五

如果说第一部分是职业心态的重塑,那么书中关于“如何高效解决问题”的内容,便是给程序员的“实用工具箱”。工作中,我们常常会遇到看似棘手的复杂需求,面对海量的代码和模糊的需求描述,很容易陷入焦虑和混乱,不知…

商店礼包条目常用API

GetName() GetQuality() GetIconPath() GetOrder()--- 2_每日限购, 3_每周限购, 4_每月限购, 5_活动限购, 6_每个用户限购, 7_所有用户限购 GetLimitInfo() GetLimitNumDesc()--- 1_免费, 2_人民币直购, 3_消耗资源 Ge…

《程序员修炼之道》笔记六

读《程序员修炼之道》,我深刻意识到,真正优秀的程序员,从来不止于“低头写代码”,更要“抬头看方向”。书中的智慧,早已超越了代码技巧和工作方法,延伸到了职业素养、团队协作乃至个人成长的层面,引导我们成为有…

账号诞生了,用做工作记录

账号诞生了,用做工作记录账号诞生了,用做工作记录

《程序员修炼之道》笔记四

《程序员修炼之道》并非一本单纯讲解代码技巧的工具书,而是一套贯穿职业生涯的思维准则,它开篇就点出核心——程序员的价值,从来不止于“写出能运行的代码”,更在于“写出易维护、可扩展、经得起时间检验的优质代码…

OI 退役记 回忆录

故事的开始 我刚上初中的时候因为离家太远,所以父母给我报了周末的一个兴趣班,我由此接触到了OI。 (我的初中是某 NS 中学的子学校,为了给 NS 输送 OI 人才,所以设立了这个兴趣班) 刚开始的时候也并没有很认真地…

wildshark

下载文件,打开wireshark,选择分组字节流,搜索字符串shellmates发现搜不出来,换成shell成功找到flag将干扰字符去除,得到正确的flag

后来,他长大了

那个少年,他后来实现梦想了吗? 我想回答你—— 他没有实现当初那个“领奖台上的梦” 他没有拿过耀眼的奖项; 他没有站上被人羡慕的舞台; 他拼尽全力,结果还是泯然众人。 但他还在我心里活着。只是不再那么高喊口号…

11月第三篇笔记

《程序员修炼之道》中“快速获取反馈,快速调整方向”的理念,彻底改变了我以往“闭门造车”的编程习惯。更让我意外的是,同班同学试用后也反馈“很难快速找到查询条件”。让我意识到,没有反馈的编码,就像在没有导航…

11.29(2)

机器学习实验import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import KFold from sklearn.metrics import accuracy_score, precision_score, recall_s…

Go 语言与 Tesseract 实现验证码自动解析

验证码(CAPTCHA)广泛用于网站和应用程序,以防止自动化脚本滥用系统。然而,在自动化测试和数据采集场景中,我们可能需要识别这些验证码。Tesseract 是一个开源 OCR(光学字符识别)引擎,能够解析图像中的文本信息…

Go 语言结合 Tesseract OCR 进行验证码识别

验证码(CAPTCHA)是一种常见的安全机制,主要用于防止自动化脚本的恶意操作。然而,在自动化测试、数据采集等合法需求下,我们可能需要自动解析验证码。本教程将介绍如何使用 Go 语言和 Tesseract OCR 解析验证码,并…

WordPress FindAll Membership插件身份验证绕过漏洞分析

本文详细分析了CVE-2025-13539漏洞,该漏洞影响FindAll Membership插件所有1.0.4及之前版本,攻击者可通过社交登录功能绕过身份验证,以管理员身份登录系统。概述 CVE-2025-13539是一个影响WordPress FindAll Members…

《程序员的修炼之道:从小工到专家》读后感一

书中关于 “代码维护” 的观点让我深受触动。它提到 “代码是写给未来的自己和同事看的”,这打破了我此前 “功能实现就行” 的片面认知。之前写代码时,为赶进度常忽略注释和代码结构,导致后期迭代时,自己都要花大…

we_will_rockyou

rockyou字典地址:https://gitlab.com/kalilinux/packages/wordlists/blob/kali/master/rockyou.txt.gz 下载文件,根据题目名称使用rockyou字典爆破打开文件获得flag

11.29(1)

补11.28 1.类图 ┌─────────────────┐ │ AbstractChatRoom │ ├─────────────────┤ │ +register() │ │ +sendText() │ │ +sendImage() │ └────────…

251129我的效率为何如此之低

是不是我关注和摄入的东西太多了,应该简单一些吧。 而且我好像,,,,不能沉下心来工作,就是总想选择一些安逸的东西。一会儿就想去看看别的,啊,死脑子快控制住自己啊啊!! 想尝试一下毛巾胶 最近老是退货,88vi…

20232324 2025-2026-2 《网络与系统攻防技术》实验八实验报告

20232324 2025-2026-2 《网络与系统攻防技术》实验八实验报告1.实验内容(1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt理解Java…