Почему точки останова всегда привязаны к линиям и, возможно, к состоянию? Почему у нас не может быть точек останова, которые связаны исключительно с состоянием или изменениями состояния, а не со строками? Как это связано с точками останова в целом классе?
Обычно мы можем приостановить выполнение в произвольной точке - почему у нас в IDE не может быть приостановлено выполнение при достижении определенного состояния, где бы ни находилась точка выполнения? Как бы мы реализовали эти перерывы? (Я предполагаю, что к тому моменту, когда изменение состояния вызвало приостановку, отлаживаемый код мог продолжаться).
Я начал думать об этом недавно, когда подумал, может ли быть способ приостановить выполнение при доступе к определенному файлу, а также подумал о том, как мой процесс отладки часто разделяется на два компонента: целевые точки прерывания и глобальный поиск, основанный на догадки о коде ведет себя.
Due diligence: соответствующий пост здесь , как минимум.
дополнение: мой особый непосредственный интерес к C # связан с Visual Studio - с помощью ссылки Марка Уилкинса, приведенной ниже, мне удалось отследить настройку «точки останова данных» в Visual Studio, включенную только при отладке собственного кода C ++.