Использование SrcSrv
Чтобы использовать SrcSrv с WinDbg, KD, NTSD или CDB, убедитесь, что установлена последняя версия пакета средств отладки для Windows (версия 6.3 или более поздняя). Затем добавьте текст srv*
в исходный путь, разделенный точкой с запятой от любых каталогов, которые также находятся в исходном пути.
Пример:
.srcpath srv*;c:\someSourceCode
Если исходный путь задан, как показано в предыдущем примере, отладчик сначала использует SrcSrv для получения исходных файлов из расположений, указанных в файлах символов целевых модулей. Если SrcSrv не удается получить исходный файл, отладчик пытается получить его из c:\someSourceCode. Независимо от того, является ли srv* первым элементом в пути или появляется позже, отладчик всегда использует SymSrv перед поиском в других каталогах, перечисленных в пути.
Если SrcSrv извлекает исходный файл, он остается на жестком диске после завершения сеанса отладки. Исходные файлы хранятся локально в подкаталоге src домашнего каталога (в отличие от сервера символов, исходный сервер не указывает локальный кэш в самом синтаксисе srv*
). В домашнем каталоге по умолчанию используется каталог установки Средств отладки для Windows; Его можно изменить с помощью расширения !homedir или путем задания переменной среды DBGHELP_HOMEDIR. Если подкаталог src домашнего каталога еще не существует, он создается.
Отладка SrcSrv
При возникновении проблем с извлечением исходных файлов из отладчика запустите отладчик с параметром командной строки -n, чтобы просмотреть фактические команды извлечения источника вместе с выходными данными этих команд. Команда !sym шумно выполняет то же самое, но, возможно, вы уже упустили важные сведения из предыдущих попыток извлечения. Это связано с тем, что отладчик не пытается получить доступ к источнику из репозиториев управления версиями, которые, как представляется, недоступны.
Получение исходных файлов
Если вы используете команду .open (Open Source File) для открытия нового исходного файла через SrcSrv, необходимо включить параметр -m Address.
Чтобы упростить использование SrcSrv из средств, отличных от отладчиков, перечисленных ранее, API DbgHelp предоставляет доступ к функциям SrcSrv с помощью функции SymGetSourceFile . Чтобы получить имя извлекаемого исходного файла, вызовите функцию SymEnumSourceFiles или SymGetLineFromAddr64 . Дополнительные сведения об API DbgHelp см. в документации dbghelp.chm, которая находится в подкаталоге sdk/help каталога установки Средств отладки для Windows, или в разделе Библиотека справки отладки.
Уменьшение размера кэша с помощью AgeStore
Все исходные файлы, скачанные SrcSrv , остаются на жестком диске после завершения сеанса отладки. Для управления размером исходного кэша можно использовать средство AgeStore для удаления кэшированных файлов, которые старше указанной даты, или для уменьшения содержимого кэша ниже указанного размера. Дополнительные сведения см. в статье AgeStore.