Не подскажите, почему так получается, что студия показывает ошибки в коде совсем не там, где они на самом деле имеются? Т.е. ошибается, например на 5 строк или больше. Кто-нибудь с этим сталкивался? Стало совсем невозможно отлаживать программы, приходится искать ошибки фактически по всему классу.
А после того как чудом отлажу все ошибки компиляции, скорее всего не будут работать брейкпоинты во время отладки. И если где ошибка во время выполнения произойдёт — покажется ошибка в дизассембированном коде вместо исходника — как-будто у программы нет исходника.
Такое впечатление, что студия где-то кеширует исходник программы и проверяет ошибки в кешированной версии, а кеш этот обновляет когда вздумается.
Здравствуйте, objMihail, Вы писали:
M>Не подскажите, почему так получается, что студия показывает ошибки в коде совсем не там, где они на самом деле имеются? Т.е. ошибается, например на 5 строк или больше. Кто-нибудь с этим сталкивался? Стало совсем невозможно отлаживать программы, приходится искать ошибки фактически по всему классу.
M>А после того как чудом отлажу все ошибки компиляции, скорее всего не будут работать брейкпоинты во время отладки. И если где ошибка во время выполнения произойдёт — покажется ошибка в дизассембированном коде вместо исходника — как-будто у программы нет исходника.
M>Такое впечатление, что студия где-то кеширует исходник программы и проверяет ошибки в кешированной версии, а кеш этот обновляет когда вздумается.
M>Студия 2008-ая.
Не сталкивался. Может быть, это как-то связано precompiled headers ?
Можно в качестве решения попробовать пересобрать файлы проекта, относящиеся к Visual Studio.
Или, например, удалить .ncb файл (база данных IntelliSense) — студия пересоберет его заново при
очередном открытии проекта.
Здравствуйте, objMihail, Вы писали:
M>Не подскажите, почему так получается, что студия показывает ошибки в коде совсем не там, где они на самом деле имеются? Т.е. ошибается, например на 5 строк или больше. Кто-нибудь с этим сталкивался? Стало совсем невозможно отлаживать программы, приходится искать ошибки фактически по всему классу.
M>А после того как чудом отлажу все ошибки компиляции, скорее всего не будут работать брейкпоинты во время отладки. И если где ошибка во время выполнения произойдёт — покажется ошибка в дизассембированном коде вместо исходника — как-будто у программы нет исходника.
M>Такое впечатление, что студия где-то кеширует исходник программы и проверяет ошибки в кешированной версии, а кеш этот обновляет когда вздумается.
M>Студия 2008-ая.
Попробуй еще как вариант поставить SP1. С брейкпоинтами такое бывает, помогает, как писали выше, пересборка солюшена. Лучше использовать сначала Clean Solution, потом только Rebuild. Что делать с ошибками не в тех строках, не знаю
Всё, разобрался. Какие-то глюки в студии были. Код заработал, после того, как я его прогнал через текст-бокс создания поста. Т.е. вставил сюда весь код из студии, потом скопировал обратно в студию и все ошибки исчезли . Это тут фича такая наверное, очень полезная.
Здравствуйте, objMihail, Вы писали:
M>Студия 2008-ая.
возможно у тебя файлы юникодные и там содержатся символы, которые иногда интерпретируются, как концы строк, а иногда нет.
Попробуй выяснить символы с какими кодами есть в твоих исходниках, либо как-нибудь конвертни текст.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
On 30.10.2010 11:57, objMihail wrote:
> Не подскажите, почему так получается, что студия показывает ошибки в коде совсем > не там, где они на самом деле имеются? Т.е. ошибается, например на 5 строк или > больше. Кто-нибудь с этим сталкивался? Стало совсем невозможно отлаживать
Скорее всего, всё очень просто. Ты компилируешь один код, а смотришь в IDE на
другой код (другой его вариант). Так может быть по многим причинам. Просто нужно
проверить. Это легко. Удаляешь в месте сборки все конечные и промежуточные
продукции, меняешь код, внося специально синтаксическую ошибку. Если собирается
-- то это оно самое.
Здравствуйте, MasterZiv, Вы писали:
MZ>Скорее всего, всё очень просто. Ты компилируешь один код, а смотришь в IDE на MZ>другой код (другой его вариант). Так может быть по многим причинам. Просто нужно MZ>проверить. Это легко. Удаляешь в месте сборки все конечные и промежуточные MZ>продукции, меняешь код, внося специально синтаксическую ошибку. Если собирается MZ>-- то это оно самое.
Спасибо, учту на будущее. Интересно, а по каким таким причинам? Просто, помню, как-то раз открыл студию, а там позавчерашний код, т.е. изменения все в того момента пропали. Долго думал в чем дело, искал где студия этот файлик откопала, потом как-то снова актуальный появился.