Почему к линиям привязаны только точки останова, а не какой-то набор состояний? - PullRequest
1 голос
/ 16 декабря 2010

Почему точки останова всегда привязаны к линиям и, возможно, к состоянию? Почему у нас не может быть точек останова, которые связаны исключительно с состоянием или изменениями состояния, а не со строками? Как это связано с точками останова в целом классе?

Обычно мы можем приостановить выполнение в произвольной точке - почему у нас в IDE не может быть приостановлено выполнение при достижении определенного состояния, где бы ни находилась точка выполнения? Как бы мы реализовали эти перерывы? (Я предполагаю, что к тому моменту, когда изменение состояния вызвало приостановку, отлаживаемый код мог продолжаться).

Я начал думать об этом недавно, когда подумал, может ли быть способ приостановить выполнение при доступе к определенному файлу, а также подумал о том, как мой процесс отладки часто разделяется на два компонента: целевые точки прерывания и глобальный поиск, основанный на догадки о коде ведет себя.

Due diligence: соответствующий пост здесь , как минимум.

дополнение: мой особый непосредственный интерес к C # связан с Visual Studio - с помощью ссылки Марка Уилкинса, приведенной ниже, мне удалось отследить настройку «точки останова данных» в Visual Studio, включенную только при отладке собственного кода C ++.

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

«Точки останова данных» часто запрашиваются для VS, но никогда не кажется достаточно высоким приоритетом для реализации в CLR. Возможно, зайди сюда и проголосуй здесь:

http://connect.microsoft.com/VisualStudio/feedback/details/333647/data-breakpoints-in-managed-code

1 голос
/ 16 декабря 2010

Можно установить точки останова так, чтобы они останавливались в отладчике при изменении значения по адресу (точки останова данных). Я считаю, что в GDB это называется watchpoint . А в Visual Studio вы также можете установить точку останова для данных (меню Отладка \ новая точка останова).

...