@PaulZhuvagin

Не работают точки останова, в чем может крыться причина?

Всем доброго дня. Есть MS VS 2015 Ent. Есть проект на C++/CLI с режимом поддержки VS 2013. В коде С++/CLI ставлю точку останова (breakpoint) - компилятор ее полностью игнорирует. Требуется отладка средствами и инструментами IDE. Настройки решения, проекта и IDE в части отладки перепроврерил на 10 раз, перепробовал кучу методов из постов на StackOverFlow - хоть бы хны. В чем может крыться причина игнорирования точек останова?
  • Вопрос задан
  • 3640 просмотров
Решения вопроса 1
@PaulZhuvagin Автор вопроса
В проектах C++/CLI при понижении версии целевой платформы (Toolset) в настройках проекта происходит сбой настроек компилятора, компоновщика и отладчика. Выправить настройки руками практически не возможно - и связано это с тем, что скрывается часть свойств проекта в том числе, настройка платформы CLR (версия .Net Framework), настройка целевой платформы (по умолчанию Windows 8.1), что влияет на "подтягивание" всех инструментов, перечисленных выше. Установка Microsoft Build Tools 2013 решить проблему тоже не поможет. Единственное найденное на текущий момент решение - установка MS VS 2013 и работа над проектом в ней.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@serber
Попробуй сделать Rebuild проекта
Ответ написан
@tomatho
Иди в модули, и проверяй подключились ли символы.
Debugger->Windows->Modules (по памяти пишу, мб не там)
Суть: там список всех dll с пометками symbols loaded / not found и возможностью посмотреть подробности.

Если подключились, то они могли подключится не оттуда откуда надо.
Поэтому рекомендую удалить все файлы символов из папки проекта.
Затем пересобрать проект.

Не знаю на счёт CLI но у C++ ещё может быть проблема с rebase.
Если exe/dll загрузился не по его обычному Base Address, то символы тоже могут не работать,
это решается добавкой в настройке проекта насильно другого Base Address по умолчанию.
Для exe не загрузится по обычному Base Address это редкость, а вот для dll обычное дело.

Так же, у меня была проблема с отладкой обычной C++ dll именно из-за того, что я вместо тулсета самой 2015 студии, выбрал тулсет 2010-й студии. Breakpoint-ы из-за этого не работали.
В таком случае можно отлаживать под 2015, а собирать Release под нужным вам тулсетом.
Ответ написан
@vilgeforce
Раздолбай и программист
А вот попробуйте удалить все точки останова. Была такая же проблема и решилась именно удалением.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы