符號下載程式 (dotnet-symbol)
本文適用於: ✔️ .NET Core 2.1 SDK 與更新版本
安裝
若要安裝最新發行版本的 dotnet-symbol
NuGet 套件,請使用 dotnet 工具安裝命令:
dotnet tool install --global dotnet-symbol
概要
dotnet-symbol [-h|--help] [options] <FILES>
描述
dotnet-symbol
全域工具會下載偵錯核心傾印和小型傾印所需的檔案 (符號、DAC、模組等)。 這在為另一部電腦上擷取的傾印進行偵錯時非常有用。 dotnet-symbol
可以下載分析傾印所需的模組和符號。
選項。
--microsoft-symbol-server
新增
http://msdl.microsoft.com/download/symbols
符號伺服器路徑 (預設)。--server-path <symbol server path>
將符號伺服器新增至伺服器路徑。
authenticated-server-path <pat> <server path>
使用個人存取權杖 (PAT) 將已驗證的符號伺服器新增至伺服器路徑。
--cache-directory <file cache directory>
新增快取目錄。
--recurse-subdirectories
處理所有子目錄中的輸入檔。
--host-only
僅下載 lldb 載入核心傾印所需的主機程式 (亦即 dotnet)。
--symbols
下載符號檔案 (.pdb, .dbg, .dwarf)。
--modules
下載模組檔案 (.dll, .so, .dylib)。
--debugging
下載特殊偵錯模組 (DAC, DBI, SOS)。
--windows-pdbs
在同時提供可攜式 PDB 時,強制下載 Windows PDB。
-o, --output <output directory>
設定輸出目錄。 否則,請在輸入檔旁寫入 (預設)。
-d, --diagnostics
啟用診斷輸出。
-h|--help
顯示命令列說明。
載入符號
根據預設,針對傾印檔案執行 dotnet-symbol
會下載偵錯傾印所需的所有模組、符號和 DAC/DBI 檔案,包括受控組件。 因為 SOS 現在可以在需要時下載符號,所以可以使用 lldb 單獨搭配主機 (dotnet) 和偵錯模組來分析大部分的 Linux 核心傾印。 若要取得搭配 lldb 執行來診斷核心傾印所需的這些檔案:
dotnet-symbol --host-only --debugging <dump file path>
疑難排解
下載符號時出現「404 找不到」錯誤。
只有透過官方通道 (例如官方網站及 dotnet 安裝指令碼中的預設來源) 取得的官方 .NET Core 執行階段版本才支援符號下載。 下載偵錯檔案時發生 404 錯誤,可能表示傾印是使用另一個來源的 .NET Core 執行階段所建立,例如從本機來源、特定 Linux 發行版本,或是從類似 archlinux 的社群網站所建置。 在這種情況下,偵錯 (dotnet、libcoreclr.so 和 libmscordaccore.so) 所需檔案應該複製於這些來源或建立傾印檔案的環境。