共用方式為


在毀損時收集傾印

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

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

環境變數 描述 預設值
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 應用程式模型僅支援完整傾印。