共用方式為


在毀損時收集傾印

設定您的應用程式以在損毀時收集傾印,具體方法是設定特定的環境變數。 當您想要了解損毀發生的原因時,這會很有幫助。 例如,擲回例外狀況時擷取傾印可協助您檢查應用程式損毀時的狀態,以便識別問題。

下表顯示您可以設定以在損毀時收集傾印的環境變數。

環境變數 描述 預設值
COMPlus_DbgEnableMiniDumpDOTNET_DbgEnableMiniDump 如果設定為 1,將啟用核心傾印產生。 0
COMPlus_DbgMiniDumpTypeDOTNET_DbgMiniDumpType 要收集的傾印類型。 如需詳細資訊,請參閱迷你傾印的類型 2 (Heap)
COMPlus_DbgMiniDumpNameDOTNET_DbgMiniDumpName 要寫入傾印的檔案路徑。 確定執行 dotnet 程序的使用者具有指定目錄的寫入權限。 /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnosticsDOTNET_CreateDumpDiagnostics 如果設定為 1,將啟用傾印程式的診斷記錄。 0
COMPlus_EnableCrashReportDOTNET_EnableCrashReport (需要 .NET 6 或更新版本;Windows 不支援。)
如果設定為 1,執行階段會產生 JSON 格式的損毀報告,其中包含損毀應用程式執行緒和堆疊框架的相關資訊。 損毀報告名稱是附加 .crashreport.json 的傾印路徑或名稱。
COMPlus_CreateDumpVerboseDiagnosticsDOTNET_CreateDumpVerboseDiagnostics (需要 .NET 7 或更新版本。)
如果設定為 1,將啟用傾印程式的詳細診斷記錄。
0
COMPlus_CreateDumpLogToFileDOTNET_CreateDumpLogToFile (需要 .NET 7 或更新版本。)
寫入診斷訊息的檔案路徑。
如果未設定,診斷訊息會寫入至損毀應用程式的主控台。

注意

針對這些環境變數,.NET 7 會在前置詞 DOTNET_ 上標準化,而不是 COMPlus_。 不過,COMPlus_ 前置詞將繼續運作。 如果使用舊版的 .NET 執行階段,則您仍應對環境變數使用 COMPlus_ 前置詞。

檔案路徑範本

從 .NET 5 開始,DOTNET_DbgMiniDumpName 也可以包含動態填入的格式化範本規範:

規範
%% 單一 % 字元
%p 傾印程序的 PID
%e 程序可執行檔名稱
%h gethostname() 傳回的主機名稱
%t 傾印的時間,以從 Epoch 起算的秒數表示 (Epoch 為 1970-01-01 00:00:00 +0000 (UTC))

迷你傾印的類型

下表顯示您可以為 DOTNET_DbgMiniDumpType 指定的所有值。 例如,將 DOTNET_DbgMiniDumpType 設為 1 表示會在損毀時收集 Mini 類型傾印。

名稱 描述
1 Mini 小型傾印,包含模組清單、執行緒清單、例外狀況資訊和所有堆疊。
2 Heap 大型且相對完整的傾印,包含模組清單、執行緒清單、所有堆疊、例外狀況資訊、處理資訊,以及除了對應映像之外所有記憶體。
3 Triage 等同於 Mini,但會移除個人資訊,例如路徑和密碼。
4 Full 最大的傾印,包含模組映像在內的所有記憶體。

單一檔案和原生 AOT 應用程式模型僅支援完整傾印。