跳到主要内容

在调试器中设置符号服务器

调试符号能够帮助您进行更好的调试。它们包含关于可执行文件和动态库中函数的信息,并为您提供清晰的调用栈信息。符号服务器允许调试器自动加载正确的符号、二进制文件和源代码,而无需用户下载大型调试文件。该服务器的功能类似于 微软的符号服务器,因此那里的文档可能很有用。

请注意,由于发布的 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。如果您也想从微软的符号服务器获取符号,则应首先列出它。

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