Исходный код отличается от оригинальной версии

#visual-studio #visual-studio-2008 #debugging

#visual-studio #visual-studio-2008 #отладка

Вопрос:

Мы работаем над приложением .NET и недавно начали использовать Git для контроля версий.

Наш последний выпуск был помечен в Git, и теперь я пытаюсь отладить какую-то проблему.

Вот что я сделал:

  1. Установил приложение (из выпуска) на свой компьютер.
  2. Проверил отмеченную версию выпуска.
  3. Запустил VS и присоединился к процессу.
  4. Разместил точки останова над некоторой частью кода.

Я получаю сообщение: «Исходный код отличается от оригинальной версии», однако это фактический код, который был скомпилирован для выпуска этой установленной версии.

Что я здесь делаю не так?

использование VS2008, если это имеет значение.

Кстати: какой механизм используется для сравнения, если двоичные файлы отличаются от исходного кода?

Например, при клонировании репозитория из Git дата всех файлов / папок будет изменена на текущую дату. Используется ли это значение (datetime) для определения исходного кода и двоичного кода?

Комментарии:

1. Мог ли ваш элемент управления версиями перепутать окончания строк?

2. Не уверен, как это действительно проверить. Я знаю, что версия была собрана с использованием TeamCity и использовала Git для проверки последнего кода, как я сделал сейчас. Поэтому код должен быть идентичным.

Ответ №1:

Проблема заключалась в том, что я не использовал (или не сохранял) исходные символы для этого выпуска.

Ранее я думал, что символы содержат только информацию о строке исходного кода и не нужны для фактической отладки программы в VS. видимо, я был неправ.

Хороший ресурс по символам для всех, кто сталкивается с проблемами с ними: http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx

Этот пост также содержит несколько других ссылок на журнал MSDN с более ценной информацией.