跳至主要內容

在偵錯器中設定符號伺服器

偵錯符號可讓您擁有更好的偵錯會話。它們包含有關可執行檔和動態連結庫中包含的函式資訊,並提供資訊以取得乾淨的呼叫堆疊。符號伺服器允許偵錯器自動載入正確的符號、二進制檔和原始碼,而無需強迫使用者下載大型偵錯檔案。伺服器的功能類似於Microsoft 的符號伺服器,因此那裡的文檔可能很有用。

請注意,由於發佈的 Electron 建置版本經過大量優化,因此偵錯並不總是容易的。偵錯器將無法向您顯示所有變數的內容,並且由於內嵌、尾部呼叫和其他編譯器優化,執行路徑可能看起來很奇怪。唯一的解決方法是建置未經優化的本地建置版本。

Electron 的官方符號伺服器 URL 是 https://symbols.electronjs.org。您不能直接造訪此 URL,您必須將其新增至偵錯工具的符號路徑。在以下範例中,使用本地快取目錄以避免重複從伺服器擷取 PDB。將 c:\code\symbols 替換為您電腦上適當的快取目錄。

在 Windbg 中使用符號伺服器

Windbg 符號路徑使用星號字元分隔的字串值進行設定。若要僅使用 Electron 符號伺服器,請將以下項目新增至您的符號路徑 (注意:如果您希望將下載的符號放置在不同的位置,您可以將 c:\code\symbols 替換為您電腦上任何可寫入的目錄)

SRV*c:\code\symbols\*https://symbols.electronjs.org

在環境中、使用 Windbg 選單或輸入 .sympath 命令,將此字串設定為 _NT_SYMBOL_PATH。如果您也想從 Microsoft 的符號伺服器取得符號,您應該先列出該符號伺服器

SRV*c:\code\symbols\*https://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols\*https://symbols.electronjs.org

在 Visual Studio 中使用符號伺服器

Tools -> Options

Symbols Settings

疑難排解:符號無法載入

在 Windbg 中輸入以下命令以印出符號無法載入的原因

> !sym noisy
> .reload /f electron.exe