共用方式為


偵錯和分析的執行階段組態選項

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

備註

從 .NET 11 開始,環境分析器支援兩者 DOTNETCORECLR 前綴。 DOTNET前綴是新標準;CORECLR為了向下相容而維護,未來可能會被移除。

啟用診斷

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

啟用分析

  • 設定是否為目前執行中的程序啟用分析。
  • 如果您省略此設定,則會停用分析。 這相當於設定 0 值。
  • 要載入設定檔,除了啟用剖析外,還需使用這些設定檔的 GUID 和設定檔位置。
設定名稱 價值觀
runtimeconfig.json N/A N/A
環境變數 DOTNET_ENABLE_PROFILING 0 - 已停用
1 - 已啟用

分析器 GUID

  • 指定要載入到目前執行中的進程中的分析器 GUID。
設定名稱 價值觀
runtimeconfig.json N/A N/A
環境變數 CORECLR_PROFILERDOTNET_PROFILER 字串引導

分析器位置

啟用剖析後,剖析器可透過兩種方式載入:透過環境變數(跨平台)或透過登錄檔(僅限 Windows)。 若同時指定 COM 函式庫路徑,則 profiler 路徑環境變數優先於登錄檔中的任何 COM 函式庫路徑。

環境變數(跨平台)

  • 指定分析器 DLL 的路徑,以載入目前執行中的進程 (或 32 位或 64 位進程) 。
  • 如果設定多個變數,則位特定變數優先。 它們指定要載入的分析器位元。
設定名稱 價值觀
環境變數 CORECLR_PROFILER_PATHDOTNET_PROFILER_PATH 字串路徑
環境變數 CORECLR_PROFILER_PATH_32DOTNET_PROFILER_PATH_32 字串路徑
環境變數 CORECLR_PROFILER_PATH_64DOTNET_PROFILER_PATH_64 字串路徑
環境變數 CORECLR_PROFILER_PATH_ARM32DOTNET_PROFILER_PATH_ARM32 字串路徑
環境變數 CORECLR_PROFILER_PATH_ARM64DOTNET_PROFILER_PATH_ARM64 字串路徑

透過登錄檔(僅限 Windows)

DOTNET_PROFILER_PATH*環境變數 在 Windows 上執行時未設定,coreclr 會從登錄檔查詢 CLSID DOTNET_PROFILER 以找到設定檔 DLL 的完整路徑。 就像任何 COM 伺服器 DLL 一樣,分析器的 CLSID 會在 HKEY_CLASSES_ROOT 下查詢,這會合併 HKLM 和 HKCU 的類別。

匯出效能對應和 jit 傾印

  • 啟用或停用效能對應或 jit 傾印。 這些檔案允許第三方工具(例如 Linux perf 工具)為動態產生的程式碼和預先編譯的 ReadyToRun (R2R) 模組提供人類可讀的名稱。
  • 如果您省略此設定,則會停用寫入 perf map 和 jit 傾印檔案。 這相當於設定 0 值。
  • 禁用效能對映時,並非所有託管呼叫站點都會得到正確解析。
  • 根據 Linux 核心版本,該 perf 工具支援這兩種格式。
  • 啟用效能對應或 jit 轉儲可能會導致高達 20% 的額外負荷,但通常要少得多。 若要將效能影響降到最低,建議選擇性地啟用效能對應或 jit 傾印,但不要同時啟用兩者。 只有在應用程式進行 JIT 程式碼時,才會發生影響。 這通常會在啟動時發生,但如果應用程式第一次執行新的程式碼路徑,則稍後可能會發生。

下表比較了效能對應和 jit 對應。

格式 Description 支援於
效能地圖 發出 /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
環境變數 DOTNET_PerfMapEnabled 0 - 已停用
1 - Perf 對映和 JIT 傾印都已啟用
2 - 已啟用 JIT 傾印
3 - 已啟用效能對應

效能記錄標記

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

備註

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