偵錯和分析的執行階段設定選項

本文詳細說明可用來設定 .NET 偵錯和分析的設定。

注意

.NET 6 會針對設定 .NET Runtime 行為的環境變數,透過前置詞 DOTNET_ (而非 COMPlus_) 進行標準化。 不過,COMPlus_ 前置詞將繼續運作。 如果使用舊版的 .NET 執行階段,則您仍應對環境變數使用 COMPlus_ 前置詞。

啟用診斷

  • 設定啟用還是停用偵錯工具、分析工具和 EventPipe 診斷。
  • 如果您省略此設定,則會啟用診斷。 這相當於設定 1 值。
設定名稱
runtimeconfig.json N/A N/A
環境變數 COMPlus_EnableDiagnosticsDOTNET_EnableDiagnostics 1 - 已啟用
0 - 已停用

啟用分析

  • 設定目前執行中處理序是否啟用分析。
  • 如果您省略此設定,則會停用分析。 這相當於設定 0 值。
設定名稱
runtimeconfig.json N/A N/A
環境變數 CORECLR_ENABLE_PROFILING 0 - 已停用
1 - 已啟用

分析工具 GUID

  • 指定要載入至目前執行中處理程的分析工具 GUID。
設定名稱
runtimeconfig.json N/A N/A
環境變數 CORECLR_PROFILER string-guid

分析工具位置

  • 指定要載入至目前執行中處理序 (或 32 位元或 64 位元處理序) 的分析工具 DLL 路徑。
  • 如果設定多個變數,則會優先使用位元特定變數。 其會指定要載入的分析工具位元。
  • 如需詳細資訊,請參閱尋找分析工具程式庫
設定名稱
環境變數 CORECLR_PROFILER_PATH string-path
環境變數 CORECLR_PROFILER_PATH_32 string-path
環境變數 CORECLR_PROFILER_PATH_64 string-path

匯出效能地圖和 jit 傾印

  • 啟用或停用效能地圖或 jit 傾印的選擇性啟用。 這些檔案允許第三方工具,例如 Linux perf 工具,識別動態產生的程式碼和先行編譯 ReadyToRun (R2R) 模組的呼叫網站。
  • 如果您省略此設定,則會停用寫入效能地圖和 jit 傾印檔案。 這相當於設定 0 值。
  • 停用效能地圖時,將不會正確解析所有受控呼叫網站。
  • 根據 Linux 核心版本,perf 工具支援這兩種格式。
  • 啟用效能地圖或 jit 傾印會造成 10-20% 的額外負荷。 若要將效能影響降到最低,建議您選擇性地啟用效能地圖或 jit 傾印,但不要同時啟用兩者。

下表比較效能地圖和 jit 地圖。

格式 描述 支援的項目
效能地圖 發出 /tmp/perf-<pid>.map,其中包含動態產生程式碼的符號資訊。
發出 /tmp/perfinfo-<pid>.map,其中包含 ReadyToRun (R2R) 模組符號資訊,並由 PerfCollect使用。
所有 Linux 核心版本都支援效能地圖。
Jit 傾印 jit 傾印格式會取代效能地圖,並包含更詳細的符號資訊。 啟用時,jit 傾印會輸出至 /tmp/jit-<pid>.dump 檔案。 Linux 核心 5.4 版或更高版本。
設定名稱
runtimeconfig.json N/A N/A
環境變數 COMPlus_PerfMapEnabledDOTNET_PerfMapEnabled 0 - 已停用
1 - 已啟用效能地圖和 jit 傾印
2 - 已啟用 jit 傾印
3 - 已啟用效能地圖

效能記錄標記

  • 啟用或停用要接受並忽略為效能記錄中標記的指定訊號。
  • 如果您省略此設定,則不會忽略指定的訊號。 這相當於設定 0 值。
設定名稱
runtimeconfig.json N/A N/A
環境變數 COMPlus_PerfMapIgnoreSignalDOTNET_PerfMapIgnoreSignal 0 - 已停用
1 - 已啟用

注意

如果省略 DOTNET_PerfMapEnabled,或設定為 0 (即已停用),則會忽略此設定。