自定义符号存储和符号服务器
正确设置符号进行调试可能是一项很有挑战性的任务,尤其是对于内核调试而言。 这通常需要知道计算机上所有产品的名称和版本。 调试器必须能够找到与产品版本和服务包对应的每个符号文件。
这可能会导致符号路径极长,路径中包含一长串的目录。 为了简化协调符号文件的这些困难,可以将符号文件收集到 符号存储中,然后由 符号服务器访问。
符号存储是符号文件、索引和工具的集合,管理员可使用该工具添加和删除文件。 符号存储还可以包含可执行图像文件。
根据唯一参数(如时间戳和图像大小)为文件编制索引。 符号存储还可以保存可使用符号服务器提取的可执行图像文件。 Windows 调试工具包含名为 SymStore 的符号存储创建工具。
调试器使用符号 服务器访问符号存储中的文件。 Windows 调试工具包括符号存储创建工具 SymStore 和符号服务器 SymSrv。 它还包括一个工具 SymProxy,用于在网络上设置 HTTP 符号存储,以充当调试器可能需要访问的所有符号存储的代理。
符号服务器使调试器能够自动从符号存储检索正确的符号文件,而无需用户知道产品名称、版本或内部版本号。 Windows 调试工具包含一个名为 SymSrv 的符号服务器。 通过在符号路径中包含特定文本字符串来激活符号服务器。 每次调试程序需要为新加载的模块加载符号时,都会调用符号服务器来查找相应的符号文件。 有关使用符号服务器的信息,请参阅 Microsoft 公共符号。
如果要对符号搜索使用与 SymSrv 提供的方法不同的方法,则可以开发自己的符号服务器 DLL。 有关实现此类符号服务器的详细信息,请参阅 其他符号服务器。
本节包括:
如果不设置自己的符号存储,而只是想要使用公共 Microsoft 符号存储,请参阅 Microsoft 公共符号。
符号实用工具
以下实用工具可以在较大的软件开发项目中分发和控制符号。
实用程序 | 说明 |
---|---|
SymProxy | 用于将基于 HTTP 的符号存储配置为充当客户端计算机和其他符号存储之间的代理。 |
SymStore | SymStore (symstore.exe) 工具用于创建符号存储。 |
AgeStore | AgeStore 工具 (agestore.exe) 根据上次访问日期删除目录或目录树中的文件。 |
DBH | DBH 工具 (dbh.exe) 是一种命令行工具,用于显示有关符号文件内容的信息。 |
PDBCopy | PDBCopy 工具 (pdbcopy.exe) 是一种命令行工具,用于从符号文件中删除专用符号信息。 |
SymChk | SymChk (Microsoft 符号检查器工具) Symchk.exe 是一种将可执行文件与符号文件进行比较的程序。 |