Как я могу заставить 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.

Другие вопросы по тегам