使用源服务器

源服务器使调试器能够自动检索与当前目标匹配的源文件。 要使用源服务器,您必须调试在构建时已进行源索引的二进制文件,并且其源文件位置已嵌入到 PDB 文件中。

适用于 Windows 的调试工具包括源服务器 SrcSrv (Srcsrv.exe)。

将 SrcSrv 与调试器配合使用

SrcSrv 可与 WinDbg、KD、NTSD 或 CDB 配合使用。

若要将 SrcSrv 与调试器配合使用,请输入以下命令,将源路径设置为 srv*。

.srcfix

可以通过输入以下命令获得相同的结果。

.srcpath srv*

将源路径设置为 srv* 告知调试器,它应从目标模块的符号文件中指定的位置检索源文件。

如果要使用 SrcSrv,并且还要在源路径中包含目录列表,请使用分号将 srv* 与路径中的任何目录分开。

例如:

.srcpath srv*;c:\someSourceCode 

如果源路径设置如上面的示例所示,调试器首先使用 SrcSrv 从目标模块的符号文件中指定的位置检索源文件。 如果 SrcSrv 无法检索源文件,调试器会尝试从 c:\someSourceCode 检索它。 无论 srv* 是路径中的第一个元素还是稍后出现,调试器始终使用 SymSrv,然后再搜索路径中列出的任何其他目录。

还可以使用 .srcfix+ 追加 srv* 到现有源路径,如以下示例所示。

3: kd> .srcpath c:\mySource
Source search path is: c:\mySource
3: kd> .srcfix+
Source search path is: c:\mySource;SRV*

如果源服务器检索源文件,调试会话结束后,它将保留在硬盘驱动器上。 源文件存储在主目录的 src 子目录中(与符号服务器不同,源服务器不会在 #D0 语法本身中指定本地缓存)。 主目录默认为调试器安装目录;可以使用 !homedir 扩展或设置DBGHELP_HOMEDIR环境变量来更改它。 如果此子目录尚不存在,则会创建该子目录。

如果使用 .open (Open Source File) 命令通过 SrcSrv 打开新的源文件,则必须包含 -m Address 参数。

有关如何为源编制索引的信息,或者如果计划创建自己的源代码管理提供程序模块,请参阅 SrcSrv

使用 AgeStore 减小缓存大小

调试会话结束后, SrcSrv 下载的任何源文件都将保留在硬盘驱动器上。 若要控制源缓存的大小,AgeStore 工具可用于删除早于指定日期的缓存文件,或减少缓存的内容低于指定大小。 有关详细信息,请参阅AgeStore