Почему у меня не работает Edit & Continue в VS2008 с устаревшим проектом C32 win32? - PullRequest
1 голос
/ 16 июля 2009

Если я создаю новый проект win32 C ++ в VS2008, я могу использовать Edit & Continue с ним просто отлично, но с этим унаследованным проектом я работаю над своими попытками использовать / включить его.

Вот что я проверял:

Инструменты -> Параметры -> Отладка -> Редактировать и продолжить -> Включить редактирование и продолжить - ВКЛ.

Формат отладочной информации: База данных программы (/ Zi)

Генерация кода -> Включить связывание на уровне функций: Да (/ Гр)

Поиск поврежденного файла .ILK. Я не могу найти файлы .ILK - они все еще используются в 2008 году?

Но когда я захожу в программу, меняю следующую строку и снова делаю шаг, я получаю:

"Этот исходный файл изменился. Он больше не соответствует ..."

вместо

«Вы хотите, чтобы изменения и продолжения применяли изменения кода?»

Что не так с этим проектом, когда E & C не работает?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2011

Это окно сообщения

Этот исходный файл был изменен. Он больше не соответствует версии файла, используемого для построения отлаживаемого приложения.

, кажется, появляется только тогда, когда я произвел изменение кода в той же строке, где находится точка останова.

Я обнаружил, что могу просто нажать кнопку OK . И когда я затем нажимаю F10, чтобы фактически выполнить измененную строку, «Edit and Continue» запускает и перекомпилирует код.

После этого точка останова отключается (показывает желтый треугольник с восклицательным знаком):

disabled breakpoint

Чтобы снова включить его, вы можете просто щелкнуть правой кнопкой мыши точку останова и выбрать «Расположение ...»:

right click breakpoint

, который приводит вас к этому диалогу:

breakpoint location dialog

, где необходимо установить флажок «Разрешить исходный код отличаться от исходной версии». Нажмите OK , и ваша точка останова снова будет включена.

0 голосов
/ 16 июля 2009

Я предполагаю, что у вас есть символы отладки / etc, и старое приложение C ++ было скомпилировано с этой поддержкой ...

Если нет, то вы столкнетесь с проблемой того, что код не был «инструментирован» для введения альтернативного кода.

Я подозреваю, что изменения в формате выходного кода сделают VC ++ 2008 несовместимым ... так как я сомневаюсь, что Microsoft добавила такую ​​обратную совместимость в (до VS 2008, я думаю, что они даже затрудняли использование старых версий .Net без используя конкретную VS)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...