創建.NET程序Dump的幾種姿勢

當一個應用程序運行的有問題時,生成一個 Dump 文件來調試它可能會很有用。在 Windows、Linux 或 Azure 上有許多方法可以生成轉儲文件。

Windows 平臺

dotnet-dump (Windows)

dotnet-dump 全局工具[1]是一種收集和分析.NET 核心應用程序 Dump 的方法。

  1. 安裝 dotnet-dump (必須要 .NET SDK) 或者 直接下載[2]

    dotnet tool install --global dotnet-dump
  2. 使用ps命令找到進程 Id

    dotnet-dump ps
  3. 通過指定的進程 id 創建 dump 文件

    dotnet-dump collect --process-id <ProcessId>
472d1f3981fa321d1e16c26b7d50c037.png

Windows 任務管理器

  1. 按下 Ctrl+Shift+Esc 打開 Windows 任務管理器

  2. 選擇"詳細信息"選項卡

  3. 在列表中找到你的應用程序

  4. 右擊它,然后選擇 "創建轉儲文件"9cf040e92aa1a0d8b8ecec326339b3a1.png

587c3153f5035ba1869d3dc62615c595.png

SysInternals - Process Explorer

  1. 下載 Process Explorer: Process Explorer[3]

  2. 打開 Process Explorer

  3. 右擊進程選擇 "Create Dump" 項

786fc5a4a9122debb72bd305b99886ca.png]

SysInternals - ProcDump (Windows)

ProcDump是一個命令行工具,當應用程序假死或進程使用太多的 CPU 時,可以生成一個 Dump 文件。

  1. 下載 ProcDump: ProcDump[4]

  2. 使用進程名或者進程 Id 創建 dump

    procdump notepad
    procdump 4572
c30d297112f1b70fb04426bfbf3102a1.png

調試診斷工具

調試診斷工具允許在滿足某個條件時生成一個轉儲文件。例如,當應用程序崩潰或 CPU 使用率高時,它可以生成一個 Dump 文件。

  1. 下載 Debug Diagnostic Tool v2 Update 3[5]

  2. 點擊 "DebugDiag 2 Collection" (在開始菜單中可用)

  3. 配置一個規則,比如說當應用程序崩潰的時候

  4. 當條件得到滿足時,會在配置的文件夾中生成一個崩潰 Dump。

Visual Studio

如果你正在調試一個應用程序,你可以直接從 Visual Studio 保存一個轉儲文件。打開 "調試 "菜單,點擊 "將轉儲另存為... "菜單項。

c0e8a9a1ed0ee5b0f874e481a5d6d244.png

WinDbg

如果你正在使用 WinDbg 調試一個應用程序,你可以使用.dump命令來生成一個轉儲文件。/ma選項允許為所有連接的進程生成一個 minidump:

.dump /ma [path]
ce08e39502ea73c53b937109ebb50e53.png

Windows Error Reporting

Windows 錯誤報告允許在應用程序崩潰時生成一個轉儲文件。你可以查看我以前關于它的帖子。出錯時自動創建崩潰轉儲文件[6] "Tip: 在出錯時自動創建一個崩潰轉儲文件"。

Linux

dotnet-dump (Linux)

dotnet-dump 全局工具[7]是一種收集和分析.NET 核心應用程序轉儲的方法。

  1. 安裝 dotnet-dump (必須 .NET SDK) 或者 下載它[8]

    dotnet?tool?install?-g?dotnet-dump
  2. 使用下面的命令找到進程 Id

    dotnet-dump?ps
  3. 通過指定的進程 id 創建 dump 文件

    dotnet-dump?collect?--type?heap?--process-id?<ProcessId>
69434a55a0be1cfbf3a7318318d428d6.png

SysInternals - ProcDump (Linux)

ProcDump 是一個命令行工具,當應用程序凍結或使用太多的 CPU 時,可以生成一個 Dump 文件。

  1. 下載 ProcDump for Linux: ProcDump For Linux[9]

  2. 使用進程名或者進程 Id 創建 dump

    procdump 4572
21f692f40a47d70f9f0ae04bb364b083.png

Azure App Services

Azure 允許我們為 App 服務生成和分析 Dump 文件。

  1. 選擇你的應用程序服務

  2. 轉到 "診斷和解決問題"

  3. 選擇 "診斷工具"

    1273d65cfc0804f1c3a660615be2b6c5.png
  4. 選擇 "收集內存轉儲"

  5. 點擊 "收集內存轉儲 "按鈕

  6. 幾分鐘后,轉儲在配置的存儲賬戶中可用。7f8c9ddd053fa12b44c97461c6773741.png

版權

原文版權:Meziantou

翻譯版權:InCerry

原文鏈接: https://www.meziantou.net/how-to-generate-a-dump-file-of-a-dotnet-application.htm

參考資料

[1]

dotnet-dump全局工具: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump?WT.mc_id=DT-MVP-5003978

[2]

直接下載: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump?WT.mc_id=DT-MVP-5003978#install

[3]

Process Explorer: https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer?WT.mc_id=DT-MVP-5003978

[4]

ProcDump: https://learn.microsoft.com/en-us/sysinternals/downloads/procdump?WT.mc_id=DT-MVP-5003978

[5]

Debug Diagnostic Tool v2 Update 3: https://www.microsoft.com/en-us/download/details.aspx?id=58210

[6]

出錯時自動創建崩潰轉儲文件: https://www.meziantou.net/tip-automatically-create-a-crash-dump-file-on-error.htm

[7]

dotnet-dump全局工具: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump?WT.mc_id=DT-MVP-5003978

[8]

下載它: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump?WT.mc_id=DT-MVP-5003978#install

[9]

ProcDump For Linux: https://github.com/microsoft/ProcDump-for-Linux/blob/master/INSTALL.md

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281485.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機專業英語怎么翻譯,計算機專業英語翻譯(附件).pdf

Lesson 1. PC 概述概述概述概述提到 “技術”一詞&#xff0c;大多數人會想到計算機。我們生活中的幾乎每個方面都有一些計算機化的成份。家里的電器中內置了微處理器&#xff0c;電視機也是如此&#xff0c;就連汽車上面也有計算機。但是&#xff0c;人們首先想到的計算機通常…

自然語言處理怎么最快入門?

2019獨角獸企業重金招聘Python工程師標準>>> 本文整理自知乎上的一個問答&#xff0c;分享給正在學習自然然語言處理的朋友們&#xff01; 一、自然語言處理是什么&#xff1f; 自然語言處理說白了&#xff0c;就是讓機器去幫助我們完成一些語言層面的事情&#xff…

點分治題表

poj1741: tree bzoj2152: 聰聰可可 bzoj2599: [IOI2011]Race [SPOJ1825]免費旅行 bzoj4016: [FJOI2014]最短路徑樹問題 &#xff08;字典序挺騷&#xff09; 轉載于:https://www.cnblogs.com/TSHugh/p/8179241.html

dotnet-exec 0.8.0 released

dotnet-exec 0.8.0 releasedIntrodotnet-exec 是一個 C# 程序的小工具&#xff0c;可以用來運行一些簡單的 C# 程序而無需創建項目文件&#xff0c;而且可以自定義項目的入口方法&#xff0c;支持但不限于 Main 方法Install/Updatedotnet-exec 是一個 dotnet tool&#xff0c;可…

政策推動加速5G發展 全球統一標準成大勢所趨

2017IMT-2020(5G)峰會6月12日至13日在京召開。英特爾院士、通信與設備事業部無線標準首席技術專家吳耕對本網記者表示&#xff0c;未來5G技術不僅僅會以單個技術的身份去發展&#xff0c;它會和行業進行更多的融合。隨著行業的發展、平臺的發展、跨行業的融合&#xff0c;人們會…

普通高中段計算機學科知識,高中計算機學科的特點及教學內容淺探

摘要&#xff1a;為培養跨世紀接班人,發展和提高我國的計算機技術和水平,培養學生的計算機意識,普及計算機文化,提高科學文化素質,許多中學都相繼開設了計算機課程,計算機課程將逐步成為中小學的一門獨立的知識性與技能性相結合的基礎性學科.計算機課程的開設,豐富了基礎教育的…

Siamese Network理解

提起siamese network一般都會引用這兩篇文章&#xff1a; 《Learning a similarity metric discriminatively, with application to face verification》和《 Hamming Distance Metric Learning》。 本文主要通過論文《Learning a Similarity Metric Discriminatively, with A…

HashMap是如何工作的

2019獨角獸企業重金招聘Python工程師標準>>> 1 HashMap在JAVA中的怎么工作的&#xff1f; 基于Hash的原理 2 什么是哈希&#xff1f; 最簡單形式的 hash&#xff0c;是一種在對任何變量/對象的屬性應用任何公式/算法后&#xff0c; 為其分配唯一代碼的方法。 一個真…

英特爾布局5G 提供端到端的解決方案

錯失了移動互聯設備市場的英特爾&#xff0c;想在5G和物聯網上搶得先機。 在英特爾5G行業發展沙龍上&#xff0c;英特爾院士、通信與設備事業部無線標準首席技術專家吳耕表示&#xff0c;全球對5G產業有相當高的期待&#xff0c;下一代網的研發重心就是從以人為本的網向以物為本…

計算機網絡實驗進入實時模式,計算機網絡實驗1 PacketTrace基本使用.doc

計算機網絡實驗1 PacketTrace基本使用太原理工大學現代科技學院計算機通信網絡課程 實驗報告專業班級學 號姓 名指導教師 實驗名稱 同組人專業班級 學號 姓名 成績一、實驗目的掌握Cisco Packet Tracer 軟件的使用方法。二、實驗任務在Cisco Packet Tracer 中用HUB 組建局域網&…

adb不識別設備(手機)的若干情形及解決方法

1.執行adb root 提示adb: unable to connect for root: no devices/emulators found&#xff1b;執行adb devices ,List下無設備 》往往是數據線或USB插口問題&#xff0c;換根數據線或換個USB插口試試 2.執行adb devices List下提示 “592b925b no permissions (verify ud…

如何做到十五分鐘領略PowerBI的DAX精華及框架

有小伙伴問&#xff0c;如何最快速理解整套 DAX 精華體系&#xff0c;例如&#xff1a;15分鐘。這雖然是個不可能完成的任務&#xff0c;但在借助腦圖PPT的強大能力下&#xff0c;還是可以做到的。如果你從沒接觸過 DAX&#xff0c;但未來要學習 DAX&#xff0c;以下視頻值得看…

php html 轉xml,用PHP生成XML文檔(轉義字符)

用PHP生成XML文檔(轉義字符)我正在從PHP腳本生成XML文檔&#xff0c;并且需要轉義XML特殊字符。我知道應該轉義的字符列表&#xff1b; 但是正確的方法是什么&#xff1f;應該使用反斜杠(\)來轉義字符還是正確的方法&#xff1f;有內置的PHP函數可以為我處理此問題嗎&#xff1…

【例題 8-13 UVA - 11093】Just Finish it up

【鏈接】 我是鏈接,點我呀:) 【題意】 在這里輸入題意 【題解】 尺取法。 假設現在取[l..r]這一段。 然后發現累加的和小于0了。 那么方法只能是不走l..l1這一段了 即delta遞減(p[l]-q[l]); 直到delta>0為止。 某個時刻如果發現r1l 或者l1且rn 則合法。 如果發現l大于n了.…

springboot配置允許跨域訪問

2019獨角獸企業重金招聘Python工程師標準>>> 因springboot框架通常用于前后端分離項目&#xff0c;因此需配置后臺允許跨域訪問&#xff08;具體看注釋&#xff09;&#xff0c;配置類如下&#xff0c;將該類加入工程中即可。 import org.springframework.context.a…

機器視覺傳感器選型,交互作用決定取舍

目前&#xff0c;如何選擇機器視覺傳感器在當代的應用可謂是越來越廣泛&#xff0c;如何選擇機器視覺傳感器是值得我們好好學習的&#xff0c;現在我們就深入了解如何選擇機器視覺傳感器。 相機是機器視覺系統的眼睛&#xff0c;而相機的心臟是圖像傳感器。傳感器的選擇取決于準…

大連交通大學計算機網絡,計算機網絡題庫(大連交通大學)chapter5.doc

計算機網絡題庫(大連交通大學)chapter5Chapter 5 The Link Layer and Local Area Network1&#xff0e;A ( ) protocol is used to move a datagram over an individual link.Aapplication-layerBtransport-layerCnetwork-layerDlink-layer2&#xff0e;The units of data exch…

使用qrcode類制作二維碼

<?phprequire_once ./phpqrcode/phpqrcode.php;/** 地址:http://phpqrcode.sourceforge.net/ 下載qrcode類* param string $url 要生成的鏈接* param bool $local 是否生成本地文件 * param string $logo 中間圖片地址 */ echo qrcode(https://www.cnblogs.co…

《Hadoop大明白》【1】Hadoop的核心組件

為什么80%的碼農都做不了架構師&#xff1f;>>> 本書適用于想對大數據平臺Hadoop有深入了解的程序員朋友&#xff0c;會幫助你以后在應用開發方面趟平一些坑。 1&#xff0c;Hadoop 是一個系列大數據組件構成的應用平臺&#xff0c;可由多個廉價機器搭建集群&#…

計算機專業學教育技術優勢,西南交通大學教育技術學(040110)專業介紹

一、學科概況“教育技術學”是教育學一級學科下的一個二級學科&#xff0c;教育技術學是教育學和計算機信息技術發展下新興的跨專業交叉性學科&#xff0c;也是一個理論與實踐相結合的應用學科。主要研究信息技術特別是計算機網絡技術、多媒體技術與教育技術的有效整合&#xf…