110 Глава 2

Рис. 2.41

Окно Редактора Кода с
выделенной точкой прерывания

Для того, чтобы убрать точку прерывания, достаточно щелкнуть мышью на
красной точке левее кода соответствующей строки.

Точки прерывания можно устанавливать только на выполняемых операторах.
Если вы, например, попробуете установить точку прерывания на строке, содержа-
щей объявление переменной, то в момент запуска приложения в красной точке,
выделяющей точку прерывания, появится крестик. Тем самым C++Builder преду-
преждает, что прерывания не будет, поскольку оператор невыполняемый. Анало-
гичный крестик может появится и в том случае, если компилятор в процессе опти-
мизации кода убрал какой-то написанный вами оператор. Если вы все-таки хотите
остановиться именно на этом операторе, вам надо отключить оптимизацию (см.
раздел 2.5.6.1).

Возможности точек прерывания гораздо тире, чем об этом пока говорилось.
C++Builder дает возможность установить условия прерывания. Вернемся к наше-
му примеру, в котором ошибка возникает на 27-м цикле при повторном щелчке по-
льзователя на кнопке. Предположим, что мы хотим остановиться за один цикл до
возникновения этой ошибки, чтобы пройти последний цикл по шагам. Иначе гово-
ря, мы хотим остановиться, когда переменной i будет присвоено значение 26, при-
чем не в первый, а во второй раз. Для установки такой точки прерывания надо вы-
полнить следующие действия.

Выполните команду View | Debug Windows | Breakpoints. Откроется окно Breakpo-
int List (рис. 2.42 а), пока пустое. Щелкните в нем правой кнопкой мыши и во
всплывшем меню выберите команду Add. Вам будет предложено три варианта: So-
urce Breakpoint — точка прерывания в головном фале приложения. Address Breakpo-
int — прерывание при переходе управления по заданному адресу, и Data Breakpoint
— прерывание при изменении данных по заданному адресу. Нашу задачу прерыва-
ния вычислений при значении i = 26 при втором проходе цикла можно решить не-
сколькими путями. Первый из них — ввести условную точку прерывания Source
Breakpoint. Проще всего это сделать следующим образом.

Установите обычным образом точку прерывания на операторе

А *= 10000;

Затем перейдите в окно Breakpoint List (команда View | Debug Windows [ Break-
points). В этом окне появится строка, соответствующая введенной точке прерыва-
ния. Выделите ее и щелкните правой кнопкой мыши. Во всплывшем меню выбери-
те раздел Properties. Перед вами появится окно Add Data Breakpoint, показанное на
рис. 2.42 б. Точно такое же окно (только с другим заголовком) откроется, если в
окне Breakpoint List вы щелкнете правой кнопкой мыши, не выделяя точки пре-
рывания, во всплывшем меню выберете команду Add и затем выберете подраздел
Source Breakpoint.

В верхнее окно редактирования Filename уже будет загружено имя файла ваше-
го модуля. В следующем окне редактирования Line number указывается номер стро-