傾印
傾印是一個檔案,其中包含建立傾印時流程的快照集,且可用於檢查應用程式的狀態。 傾印可用來偵錯 .NET 應用程式,因為很難將偵錯工具附加至應用程式,例如實際執行或 CI 環境。 使用傾印可讓您擷取有問題的流程狀態並進行檢查,而不需要停止應用程式。
收集傾印
您可以依據執行應用程式的平台,利用各種方式收集傾印。
注意
傾印可能包含敏感性資訊,因為其中可以含有執行中流程的完整記憶體。 請小心遵照任何安全性限制和指引來處理它們。
提示
如需傾印收集、分析和其他注意事項的常見問題,請參閱傾印:常見問題。
您可以使用環境變數來設定應用程式,以在損毀時收集傾印。
您可能想要在應用程式尚未損毀時收集傾印。 例如,如果您想要檢查似乎處於死結的應用程式狀態,將環境變數設定為在損毀時收集傾印並沒有用,因為應用程式仍在執行中。
dotnet-dump 是用來收集傾印的簡單跨平台命令列工具。 Visual Studio 或 windbg 等數個其他偵錯工具也有傾印收集功能。
如果您要在實際執行環境中執行應用程式,或以分散式方式執行應用程式 (數個服務、複本),dotnet-monitor 可支援許多常見案例和特定診斷調查,包括傾印收集和輸出。 它可讓您從遠端或利用觸發條件來收集傾印。
分析傾印
若要進一步了解分析 Linux 上所收集到的傾印,請導覽至偵錯 Linux 傾印。
若要進一步了解分析 Windows 上所收集到的傾印,請導覽至偵錯 Windows 傾印。
記憶體分析
如果您的應用程式記憶體持續成長,但不確定原因為何,您可以對應用程式執行記憶體分析。 偵錯記憶體流失教學課程示範如何使用 dotnet CLI 工具搭配 dotnet-sos 命令 dumpheap 和 gcroot 來偵錯記憶體流失。
Visual Studio 記憶體分析可用來診斷 Windows 上的記憶體流失。
另請參閱
深入了解如何利用傾印來協助診斷 .NET 應用程式中的問題。
偵錯 Linux 傾印教學課程會逐步引導您偵錯在 Linux 中收集的傾印。
偵錯死結教學課程會逐步引導您使用傾印來偵錯 .NET 應用程式中的死結。