MSVC2015 - нет останова на breakpoint
От: AlexGin Беларусь  
Дата: 07.12.16 06:16
Оценка:
Доброе время суток, уважаемые коллеги!

При отладке в среде MSVC2015 (Community Edition) Update 3 — нет останова на breakpoint.
Проект на C++ типа UnitTest.
Отладку запускаю через меню: Test/Debug/...

Далее — окно с сообщением о недоступности сырцов (Source Not Available)...

При этом:
a) всё собрано под Debug;
b) проведена полная пересборка проекта (и не раз);
c) тот же самый проект в среде MSVC2013 (CE) Update 5 — работает как часы (останов на брекпойнтах есть).

Project — Debug x86; Platform Toolset — Visual Studio 2015 (v140).
Точка останова — В МОЁМ КОДЕ, файлы которого включены в проект.

ОС: Windows 7/64 (SP1).

Лично я грешу на кривые ручки индусов в M$
В чём здесь может быть проблема?

Заранее благодарен за любые соображения!
Отредактировано 07.12.2016 6:36 AlexGin . Предыдущая версия . Еще …
Отредактировано 07.12.2016 6:24 AlexGin . Предыдущая версия .
Re: MSVC2015 - нет останова на breakpoint
От: VTT http://vtt.to
Дата: 07.12.16 07:05
Оценка:
У меня оно все нормально работает.
"нет останова на breakpoint" и "окно с сообщением о недоступности сырцов (Source Not Available)" это совсем не одно и то же.
Скорее всего ваши тесты валятся на этапе инициализации где-то в системных библиотеках (для которых не удается найти исходники).
Посмотрите стек вызовов.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: MSVC2015 - нет останова на breakpoint
От: AlexGin Беларусь  
Дата: 07.12.16 07:16
Оценка:
Удалось самому разобраться в проблеме:
в настройках — меню Tools/Options
в секции Debugging/Symbols
текстовый бокс "Cache symbols in this directory:" — должен быть пустой (нажать кнопку — "Empty Symbol Cache")

Зря я боялся насчет индусов в M$

P.S. Вполне допускаю, что здесь у меня были некорректные настройки — что и приводило к вышеописанной проблеме.
Отредактировано 07.12.2016 7:47 AlexGin . Предыдущая версия . Еще …
Отредактировано 07.12.2016 7:23 AlexGin . Предыдущая версия .
Re[2]: MSVC2015 - нет останова на breakpoint
От: AlexGin Беларусь  
Дата: 07.12.16 07:21
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>У меня оно все нормально работает.

VTT>"нет останова на breakpoint" и "окно с сообщением о недоступности сырцов (Source Not Available)" это совсем не одно и то же.
VTT>Скорее всего ваши тесты валятся на этапе инициализации где-то в системных библиотеках (для которых не удается найти исходники).
VTT>Посмотрите стек вызовов.
Есть тут два момента:
Во-первых, данный проект нормально отрабатывал у меня на 2013 студии;
Во-вторых, у моих коллег — он также нормально работал и на MSVC2015.

З.Ы. Ларец просто открывался — подробности я указал ниже.
Теперь всё работает у меня и на MSVC2015
Re[3]: MSVC2015 - нет останова на breakpoint
От: VTT http://vtt.to
Дата: 07.12.16 07:23
Оценка:
У меня нормально работает и с включенным кэшем символов.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[2]: MSVC2015 - нет останова на breakpoint
От: Mr.Delphist  
Дата: 29.12.16 15:42
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Удалось самому разобраться в проблеме:

AG>в настройках — меню Tools/Options
AG>в секции Debugging/Symbols
AG>текстовый бокс "Cache symbols in this directory:" — должен быть пустой (нажать кнопку — "Empty Symbol Cache")

Да, PDB хранят полный путь к сырцам, из которых собраны. Что может заставить машину думать, что сырцов нет, если путь изменился или не совпал (недавно аналогично обломался при апгрейде — сырцы переехали из диска C: на D:, вся прочая структура папок друг относительно друга осталась той же, но PDB имели в себе пути на старый диск, поэтому все бряки на 3rd party отвалились разом).

AG>Зря я боялся насчет индусов в M$

Не зря, не зря. Абсолютный путь в PDB — зло, особенно при нескольких уровнях зависимостей либ друг от друга. Все эти костыли с alt path — именно костыли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.