本文詳細說明可用來設定 .NET 偵錯和分析的設定。
備註
從 .NET 11 開始,環境分析器支援兩者 DOTNET 及 CORECLR 前綴。
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_PROFILER 或 DOTNET_PROFILER |
字串引導 |
分析器位置
啟用剖析後,剖析器可透過兩種方式載入:透過環境變數(跨平台)或透過登錄檔(僅限 Windows)。 若同時指定 COM 函式庫路徑,則 profiler 路徑環境變數優先於登錄檔中的任何 COM 函式庫路徑。
環境變數(跨平台)
- 指定分析器 DLL 的路徑,以載入目前執行中的進程 (或 32 位或 64 位進程) 。
- 如果設定多個變數,則位特定變數優先。 它們指定要載入的分析器位元。
| 設定名稱 | 價值觀 | |
|---|---|---|
| 環境變數 |
CORECLR_PROFILER_PATH 或 DOTNET_PROFILER_PATH |
字串路徑 |
| 環境變數 |
CORECLR_PROFILER_PATH_32 或 DOTNET_PROFILER_PATH_32 |
字串路徑 |
| 環境變數 |
CORECLR_PROFILER_PATH_64 或 DOTNET_PROFILER_PATH_64 |
字串路徑 |
| 環境變數 |
CORECLR_PROFILER_PATH_ARM32 或 DOTNET_PROFILER_PATH_ARM32 |
字串路徑 |
| 環境變數 |
CORECLR_PROFILER_PATH_ARM64 或 DOTNET_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 - 已啟用 |