Недавно я настроил сервер символов и добавил SrcSrv поддержку наших скриптов сборки, чтобы мы могли легко отлаживать аварийные дампы с места, а WinDbg и/или отладчик Visual Studio получали правильную версию исходных файлов из нашего репозитория Subversion, которые использовались для компиляции любой конкретной версии наше приложение зависло.
Я добавил строку в наш скрипт сборки, чтобы вызвать стандартный скрипт svnindex.cmd
, который поставляется с пакетом средств отладки для Windows, но обнаружил, что скрипт искажает пути к файлам репозитория, которые содержат экранированные символы URI, такие как пробелы, поэтому WinDbg не может загружать файлы из репозитория.
Обратите внимание, что svnindex.cmd
(в частности, Perl-скрипт svn.pm
, который он запускает) получает расположение репозитория для исходных файлов из вывода команды svn info
, а svn
URI-экранирует пути к репозиторию. Когда svnindex.cmd
сталкивается с этим, он искажает путь. Например, он превратит путь
"http://mysvnrepo/My%20Application/trunk/Database%20Layer/OracleAdapter.cs"
в
"http://mysvnrepo/My20Layer/OracleAdapter.cs"
Оказывается, SrcSrv интерпретирует все, что находится между «%», как имя переменной, которое он заменяет во время выполнения.
Предполагая, что переименование всех каталогов в нашем репозитории для удаления пробелов и других «специальных» символов, которые будут экранированы URI, невозможно, как мне обойти это ограничение?