偵錯和分析的執行階段設定選項
本文詳細說明可用來設定 .NET 偵錯和分析的設定。
注意
.NET 6 會針對設定 .NET Runtime 行為的環境變數,透過前置詞 DOTNET_
(而非 COMPlus_
) 進行標準化。 不過,COMPlus_
前置詞將繼續運作。 如果使用舊版的 .NET 執行階段,則您仍應對環境變數使用 COMPlus_
前置詞。
啟用診斷
- 設定啟用還是停用偵錯工具、分析工具和 EventPipe 診斷。
- 如果您省略此設定,則會啟用診斷。 這相當於設定
1
值。
設定名稱 | 值 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境變數 | COMPlus_EnableDiagnostics 或 DOTNET_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_PerfMapEnabled 或 DOTNET_PerfMapEnabled |
0 - 已停用1 - 已啟用效能地圖和 jit 傾印2 - 已啟用 jit 傾印3 - 已啟用效能地圖 |
效能記錄標記
- 啟用或停用要接受並忽略為效能記錄中標記的指定訊號。
- 如果您省略此設定,則不會忽略指定的訊號。 這相當於設定
0
值。
設定名稱 | 值 | |
---|---|---|
runtimeconfig.json | N/A | N/A |
環境變數 | COMPlus_PerfMapIgnoreSignal 或 DOTNET_PerfMapIgnoreSignal |
0 - 已停用1 - 已啟用 |
注意
如果省略 DOTNET_PerfMapEnabled,或設定為 0
(即已停用),則會忽略此設定。