設定您的應用程式以在損毀時收集傾印,具體方法是設定特定的環境變數。 當您想要了解損毀發生的原因時,這會很有幫助。 例如,擲回例外狀況時擷取傾印可協助您檢查應用程式損毀時的狀態,以便識別問題。
下表顯示您可以設定以在損毀時收集傾印的環境變數。
| 環境變數 | 描述 | 預設值 |
|---|---|---|
DOTNET_DbgEnableMiniDump |
如果設定為 1,將啟用核心傾印產生。 | 0 |
DOTNET_DbgMiniDumpType |
要收集的傾印類型。 如需詳細資訊,請參閱迷你傾印的類型。 | 2 (Heap) |
DOTNET_DbgMiniDumpName |
要寫入傾印的檔案路徑。 確定執行 dotnet 程序的使用者具有指定目錄的寫入權限。 | /tmp/coredump.<pid> |
DOTNET_CreateDumpDiagnostics |
如果設定為 1,將啟用傾印程式的診斷記錄。 | 0 |
DOTNET_DbgCreateDumpToolPath |
(僅限 .NET 11+ NativeAOT) 路徑指向 createdump 工具所在的目錄。 執行時會在這個目錄中尋找 createdump 二進位檔。 這個變數在 createdump 沒有隨執行環境附帶,且你需要「自備」dump 產生工具的情況非常有用。 此環境變數僅支援於 NativeAOT 應用程式,否則會被忽略。 |
|
DOTNET_EnableCrashReport |
(在 Windows 上不受支援。 如果設定為 1,執行階段會產生 JSON 格式的損毀報告,其中包含損毀應用程式執行緒和堆疊框架的相關資訊。 損毀報告名稱是附加 .crashreport.json 的傾印路徑或名稱。 |
|
DOTNET_CreateDumpVerboseDiagnostics |
如果設定為 1,將啟用傾印程式的詳細診斷記錄。 | 0 |
DOTNET_CreateDumpLogToFile |
寫入診斷訊息的檔案路徑。 | 如果未設定,診斷訊息會寫入至損毀應用程式的主控台。 |
檔案路徑範本
從 .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 應用程式模型僅支援完整傾印。