Как я могу заставить Visual Studio использовать исходный сервер вместо локальных файлов при отладке?
Я только начал экспериментировать с инструментами Microsoft для настройки сервера символов и исходного кода. Я успешно проиндексировал свои исходные файлы с помощью p4index, обновил файлы.pdb и обновил сервер символов. Я установил Visual Studio для использования моего сервера символов.
Все работает нормально: когда я выполняю пошаговую отладку через свой exe-файл как отдельный exe-файл, загружаются pdb-файлы, и правильная версия исходного кода экспортируется из перформанса в временное местоположение и отображается в visual studio.
В чем проблема тогда? Если я пытаюсь выполнить отладку на компьютере, на котором я собрал свой exe, то Visual Studio находит исходный код локально. Проблема в том, что это модифицированный файл, а не правильная версия исходного кода, соответствующая тому, когда был создан exe. VStudio даже знает это и выдает запросчик, который говорит: "Исходный файл отличается от того, когда был собран модуль. Вы хотите, чтобы отладчик использовал его в любом случае?"
Если я нажимаю "нет", я просто получаю диалоговое окно файла, чтобы вручную найти источник.
Есть ли способ заставить vstudio использовать исходный сервер или, желательно, сначала использовать исходный сервер, прежде чем смотреть локально?
Я использую Visual Studio 2012 и выступаю
1 ответ
В случае, если кто-то еще найдет этот поток и столкнется с такой же проблемой, в моем случае решением было включить параметр "Требовать, чтобы исходные файлы точно соответствовали исходной версии" в Параметры -> Отладка -> Общие.
Он по-прежнему будет отдавать предпочтение локальным копиям, но только в том случае, если они идентичны, и в этом случае это та же версия, которую он в противном случае получил бы с сервера управления версиями. И если он не тот, он теперь будет отображать правильный с сервера управления версиями.
После того, как я столкнулся с той же проблемой, я наконец сузил ее до того факта, что Visual Studio не будет запускать команду P4 PRINT, если в том месте, где ее ожидает pdb/debugger, ожидается файл.
Например, если индексированный исходный файл находился в C:\Toto\Source.cpp, единственное присутствие этого файла, когда Visual ищет его, предотвратит печать P4.
Если я переименую его, Visual правильно печатает файл в другой несвязанной папке (проход кеша символов).
Это не исправление, это всего лишь причина, но я все еще расследую. Такое поведение отсутствует в windbg.