閱讀英文

共用方式為


傾印

傾印是一個檔案,其中包含建立傾印時流程的快照集,且可用於檢查應用程式的狀態。 傾印可用來偵錯 .NET 應用程式,因為很難將偵錯工具附加至應用程式,例如實際執行或 CI 環境。 使用傾印可讓您擷取有問題的流程狀態並進行檢查,而不需要停止應用程式。

收集傾印

您可以依據執行應用程式的平台,利用各種方式收集傾印。

注意

傾印可能包含敏感性資訊,因為其中可以含有執行中流程的完整記憶體。 請小心遵照任何安全性限制和指引來處理它們。

提示

如需傾印收集、分析和其他注意事項的常見問題,請參閱傾印:常見問題

  • 您可以使用環境變數來設定應用程式,以在損毀時收集傾印

  • 您可能想要在應用程式尚未損毀時收集傾印。 例如,如果您想要檢查似乎處於死結的應用程式狀態,將環境變數設定為在損毀時收集傾印並沒有用,因為應用程式仍在執行中。

  • dotnet-dump 是用來收集傾印的簡單跨平台命令列工具。 Visual Studiowindbg 等數個其他偵錯工具也有傾印收集功能。

  • 如果您要在實際執行環境中執行應用程式,或以分散式方式執行應用程式 (數個服務、複本),dotnet-monitor 可支援許多常見案例和特定診斷調查,包括傾印收集和輸出。 它可讓您從遠端或利用觸發條件來收集傾印。

分析傾印

記憶體分析

如果您的應用程式記憶體持續成長,但不確定原因為何,您可以對應用程式執行記憶體分析。 偵錯記憶體流失教學課程示範如何使用 dotnet CLI 工具搭配 dotnet-sos 命令 dumpheap 和 gcroot 來偵錯記憶體流失。

Visual Studio 記憶體分析可用來診斷 Windows 上的記憶體流失。

另請參閱

深入了解如何利用傾印來協助診斷 .NET 應用程式中的問題。

  • 偵錯 Linux 傾印教學課程會逐步引導您偵錯在 Linux 中收集的傾印。

  • 偵錯死結教學課程會逐步引導您使用傾印來偵錯 .NET 應用程式中的死結。