當一個應用程式執行的有問題時,生成一個Dump檔案來偵錯它可能會很有用。在Windows、Linux或Azure上有許多方法可以生成轉儲檔案。
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>
Ctrl+Shift+Esc
開啟 Windows 工作管理員]
ProcDump
是一個命令列工具,當應用程式假死或程序使用太多的CPU時,可以生成一個Dump檔案。
下載 ProcDump: ProcDump
使用程序名或者程序Id建立dump
procdump notepad
procdump 4572
偵錯診斷工具允許在滿足某個條件時生成一個轉儲檔案。例如,當應用程式崩潰或CPU使用率高時,它可以生成一個Dump檔案。
如果你正在偵錯一個應用程式,你可以直接從Visual Studio儲存一個轉儲檔案。開啟 "偵錯 "選單,點選 "將轉儲另存為... "選單項。
如果你正在使用WinDbg偵錯一個應用程式,你可以使用.dump
命令來生成一個轉儲檔案。/ma
選項允許為所有連線的程序生成一個minidump:
.dump /ma [path]
Windows錯誤報告允許在應用程式崩潰時生成一個轉儲檔案。你可以檢視我以前關於它的貼文。出錯時自動建立崩潰轉儲檔案 "Tip: 在出錯時自動建立一個崩潰轉儲檔案"。
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>
ProcDump是一個命令列工具,當應用程式凍結或使用太多的CPU時,可以生成一個Dump檔案。
下載 ProcDump for Linux: ProcDump For Linux
使用程序名或者程序Id建立dump
procdump 4572
Azure允許我們為App服務生成和分析Dump檔案。
選擇你的應用程式服務
轉到 "診斷和解決問題"
選擇 "診斷工具"
選擇 "收集記憶體轉儲"
點選 "收集記憶體轉儲 "按鈕
幾分鐘後,轉儲在設定的儲存賬戶中可用。
原文版權:Meziantou
翻譯版權:InCerry
原文連結:
https://www.meziantou.net/how-to-generate-a-dump-file-of-a-dotnet-application.htm