Я пытаюсь использовать windbg больше, и у меня проблемы с кешем символов. Мне непонятно, какой должен быть формат строки.
У меня есть несколько требований:
- использовать сервер Microsoft http://msdl.microsoft.com/download/symbols
- используйте символы из нашего программного обеспечения, архивированные в \\foo\Build1234
- используйте локальный кеш в каталоге c:\dev\symbols
Архив символов из нашей распределенной сборки в \\foo\Build1234 не организован как сервер символов. Если я правильно понял, мне нужно использовать ключевое слово кеша.
Учитывая эти требования, похоже ли это как правильно отформатированный srvpath:
cache*\\foo\Build1234;srv*c:\dev\symbols*http://msdl.microsoft.com/download/symbols
Edit:
Я только начал читать Advanced Windows Debugging, и я неправильно понял, как работает ключевое слово кеша. Я думал, что это способ сообщить отладчику, что папка - это просто папка файлов, а не сервер символов. После того, как Майкл оставил свой комментарий, я перечитал раздел и увидел, что он действительно работает, как описал Майкл.
Теперь я смущен, когда вы используете; или * для разделения путей/URL-адресов. И когда вам нужен префикс srv *. В онлайн-справке для windbg они приводят следующий пример:
\\someshare\that\cachestar\ignores;srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols;cache*c:\mysymbols;\\anothershare\that\gets\cached
Символы из \\someshare не кэшируются, символы из Microsoft кэшируются в c:\mysymbols, а c:\mysymbols используется как кеш для любых других путей справа от директивы cache *.
Случайное использование srv * меня сбивает с толку - я не понимаю, почему первый и последний пути не имеют префикса srv *.
Изменить 2:
Это постепенно начинает иметь смысл для меня. Директива srv используется для серверов символов, а не для обычных каталогов символов. Итак, я считаю, что ответ на мой оригинальный вопрос таков:
\\foo\Build1234;cache*c:\dev\symbols;srv*http://msdl.microsoft.com/download/symbols