Turbo Debugger 5.0: Руководство по применению, при выполнении лабораторных работ, страница 14

Директивы Deleteв этом поле, наоборот, позволяют удалить высвеченные условия срабатывания контрольных точек и характер действий при их срабатывании.

Как уже упоминалось, в поле Conditionexpression вводится выражение на языке C, Pascal или Assembler, которое должно стать истинным для того, чтобы сработала контрольная точка. Обычно Турбоотладчик воспринимает язык, на котором вы вводите код по текущему адресу программы. Но вы можете использовать опции главного меню Options→Language  для выбора языка, который вы хотите использовать для записи выражений условий, которые вы задаете.

Задание действий, которые должны произойти при срабатывании контрольной точки осуществляется активированием одной из пяти директив поля Action.

Директива Break задает остановку выполнения программы при каждом срабатывании контрольной точки и передачу управления отладчику для возможности контроля состояния программы.

Задание директивы Execute приводит к вычислению, заданного в поле Actionexpression, выражения, при каждом срабатывании контрольной точки. Задание выражений может быть произведено на языках Assembler, C, Pascal. При этом результат этого вычисления должен  давать некоторый полезный эффект, например, изменение значения переменной.

Директива Log позволяет задать переменную или выражение, определяющее адрес в памяти, чьи величины должны быть зарегистрированы в Logwindow (окне регистрации), каждый раз когда срабатывает рабочая точка.

Директива Enablegroup позволяет разрешить срабатывание некоторых групп контрольных точек. Номера групп контрольных точек, разрешенных к срабатыванию, определяются в поле Actionexpression.

Директива Disablegroup дает возможность запретить срабатывание контрольных точек, относящихся к некоторой заданной группе контрольных точек. Номера этих запрещенных групп также указываются в поле  Actionexpression.

Поле Passcount служит для установки числа проходов задаваемой контрольной точки, необходимой для того, чтобы она сработала. Эта установка может быть произведена совместно с любым условием, которое может быть задано. При этом, заданное условие должно быть выполнено прежде, чем декрементируется счетчик числа проходов.

BREAKPOINTS /Changed Memory Global

Опция ChangeMemoryGlobal позволяет задавать контрольные точки, которая срабатывает в случае, когда изменяется заданная область памяти. При этом вам предлагается помощь при задании области памяти, которую надо контролировать.

Учтите, что при установке любой из контрольных точек этого типа, ваша программа будет исполняться несколько медленнее,

При выборе этой опции на экране дисплея открывается окно Entermemoryaddress, count, которое позволяет ввести выражение, задающее адрес области памяти, которую надо контролировать, а также необязательное указание (count) числа элементов памяти, составляющих эту область. Если вы не определите число элементов памяти, то  по умолчанию принимается область памяти объемом 1 элемент. Размер элемента определяется автоматически при задании самого выражения. Так, например, если выражение связано с типом данных Long языка C, то будет контролироваться четырехбайтная область памяти.

BREAKPOINTS /Expression True Global

Выбор данной опции позволяет установить контрольную точку, которая срабатывает, когда значение заданного выражения становится истинным. Вам предоставляется помощь в виде окна Enterexpressionforconditionalbreakpoint, где вы должны задать выражение, которое должно стать истинным, чтобы программа остановилась.

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

BREAKPOINTS /Hardware Breakpoint…

Выбор опции HardwareBreakpoint (аппаратная контрольная точка) позволяет быстро и легко устанавливать аппаратные контрольные точки общего назначения с помощью отрывающегося диалогового окна Hardwarebreakpointoptions. Это диалоговое окно позволяет вам установить тип аппаратной контрольной точки точно так же, как вы выдаете директиву Hardwareoptions в окне Breakpoint локального меню. Оно позволяет вам задавать параметры аппаратных контрольных точек для аппаратного отладчика. Опции диалогового окна: Cycletype, Addressmath, Datamath задают аппаратные контрольные точки, которые запускаются регистрами аппаратной отладки CPU.

Используйте это диалоговое окно, когда вы задали условия срабатывания контрольных точек в опции Hardware.

Имейте в виду, что для использования опции Hardwarebreakpoint надо иметь аппаратный отладчик. Аппаратная контрольная точка может быть установлена только в том случае, если вы работаете с компьютером i386, или имеете установленную карту отладчика. В других случаях вы должны иметь загруженный соответствующий драйвер устройства.

BREAKPOINTS /Delete all

Выбор опции (директивы) Deleteall(устранить все) эквивалентен команде устранения (ликвидации) всех контрольных точек, установленных в вашей программе. Используйте эту директиву, когда вы хотите продолжить отладку вашей программы, но не желаете, чтобы она остановилась по достижении любой из контрольных точек, которые вы предварительно расставили.

                                          - DATA -

Опция Dataглобального меню позволяет контролировать переменные или области памяти в вашей программе. Используя эту опцию, вы можете также вычислять задаваемые выражения и изменять их величины. Выражения, подлежащие вычислению, могут быть представлены на одном из тех языков программирования, которые поддерживаются Турбоотладчиком: C, Pascal, Assembler. Выбор языка, на котором вы будете вводить выражение, осуществляйте с помощью опций Options/Language. Обычно Турбоотладчик употребляет тот язык, который вы использовали при написании текущей программы. При выводе на дисплей заданное для вычисления выражение, вы можете задать необязательную строку Formatcontrol, которая управляет отображением результата вычислений на экране дисплея.