Комментарии 7
что-то подсказывает, что не условные брейкпоинтеры в С++, а в условные брейкпоинтеры в MSVS
Качество материала, конечно, нулевое. Мало того, что от C++ тут только название курса и две строки кода, так ещё и рассказано об одной( и весьма спорной ) IDE.
В lldb и gdb тоже есть условные брекпоинты.
И ещё стоило бы упомянуть, что это счастье будет неимоверно тормозить работающее под дебаггером приложение, если бряк стоит в горячем коде. Тормозит настолько, что минут 5-10 пересборки проекта выгоднее если бряк не ловит ничего в первых итерациях
"Споры об IDE" закончились лет пятнадцать назад. Общепризнанной вершиной Олимпа IDE является Microsoft Visual Studio. Все остальное в этой области - это лишь попытки в условиях ограниченных ресурсов reinvent каждую фичу в VS чуть ли не попиксельно. Poorly, разумеется...
Что касается использования условных точек останова - это верно, торможение от их использования в общем случае будет существенным. И в условиях разработки "на своей базе" действительно в большинстве случаев лучше просто явно добавить в код соответствующий if
и перекомпилировать.
Но иногда приходится отлаживаться и "на вражеской территории", то есть на клиентском оборудовании и в клиентском окружении, голым gdb
без возможности редактирования и/или перекомпиляции кода. В таких случаях помогает стратегическое создание в критических точках кода специальных параметризуемыхif
-закладок, призванных отлавливать наиболее часто встречающиеся потребности в условной остановке. То есть что-то вроде
#ifdef DEBUG
static unsigneed break_id;
if (new_object->id == break_id)
some_sort_of_breakpoint_placeholdfer;
#endif // DEBUG
Разумеется, все возможные необходимости для постановки условных точек останова заранее не предугадаешь, но тем не менее очень существенная их доля прекрасно покрывается вот таким планированием на будущее еще на этапе разработки кода.
Тут бы каких-то доказательств, чтобы не получилось «чемпиона мира по версии газеты «Вестник Белогорья»».
Я лично нахожу VS существенно неудобной в целой пачке деталей.
Такие слепые брекпоинты можно ставить с помощью виндовой DebugBreak. Внутри она вызывает отладочное прерывание процессора(int 3) и вам показывают окно с просьбой найти отладчик.
"Споры об IDE" закончились лет пятнадцать назад.
Закончились настолько решительно и бесповоротно, что многие не представляют работу без ReSharper и/или VisualAssist
Poorly, разумеется
CLion смотрит на ваши слова с недоумением, как на несмешную шутку. Почти все фичи без исключения там сделаны лучше, чем в Visual Studio, включая те, которые в VS появились раньше. И это не отменяет общей кривости CLion
Разбираемся с условными брейкпоинтами в C++