使用源服务器

源服务器使调试器能够自动检索与当前目标匹配的源文件。 若要使用源服务器,必须调试在生成时已编制源索引且其源文件位置嵌入 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 子目录中, (与符号服务器不同,源服务器不会在 srv* 语法本身) 指定本地缓存。 主目录默认为调试器安装目录;可以使用 !homedir 扩展或设置DBGHELP_HOMEDIR环境变量来更改它。 如果此子目录尚不存在,则会创建它。

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

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

使用 AgeStore 减小缓存大小

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