Cтраница 2
Получив управление в точке прерывания у оператора с меткой 40 в подпрограмме SUB, пользователь запрашивает вывод на АП сведений о частоте выполнения операторов в строках 280 - 320, сведений об операторах, которые не выполнялись в подпрограмме SUB, а также сведений о частоте выполнения всех операторов основной программы. [16]
В качестве упражнения установим точку прерывания в процедуре LoadKa-те. [17]
![]() |
Схема для анализа перекоса син-хронизации. [18] |
Вызывает возврат процессора в точку прерывания посредством восстановления состояния из стека. [19]
![]() |
Режим отладки [ TABLE ] Окна отладчикадля версии Delphi Enterprise. [20] |
В этом окне перечислены все точки прерывания, установленные в приложении. [21]
Если условие задано логическим выражением, точка прерывания устанавливается всякий раз, когда выражение принимает значение истина. Логическое выражение заключается в скобки. Операндами логических операций могут быть логические константы, переменные, элементы логических массивов и выражения отношения. Операндами операций отношения могут быть константы, переменные и элементы массивов целого, вещественного, комплексного и текстового типов, а также текстовые подстроки. [22]
Изменения в программе, сделанные в точке прерывания с помощью оператора присваивания, являются временными и исчезают после завершения режима отладки. [23]
АП сообщений о прохождении программы через те точки прерывания, в которых управление не передается пользователю. Если параметр NOTIFY или NONOTIFY не указан, действует значение NOTIFY; COUNT ( n) - необязательный параметр, позволяет управлять частотой установки безусловных точек прерывания. Если значение п равно 1 или COUNT отсутствует, безусловная точка прерывания устанавливается всякий раз, когда получает управление любой из операторов, перечисленных в данной подкоманде AT. Если значение п больше 1, точки прерывания устанавливаются только при я-крат-ном выполнении этих операторов. [24]
При достижении оператора, который определен как точка прерывания, выполнение программы приостанавливается и после выдачи сообщения, содержащего номер оператора, управление передается абоненту. Абонент может изменить значения каких-либо переменных или выполнить другие отладочные действия, задав соответствующие подкоманды отладки. Одновременно для отлаживаемой программы может быть задано не более десяти точек прерывания. [25]
При обнаружении неотложного условия машинной ошибки выбор точки прерывания влияет на степень нарушения, которое должно при этом указываться. Во всех случаях, когда это оказывается возможным, выбирают такую точку прерывания, которая позволяет индицировать минимальные нарушения. Обычно предпочтение отдается точке прерывания, непосредственно предшествующей моменту появления ошибки. Если точка прерывания выбирается после выполнения соответствующего программного прерывания или прерывания при обращении к супервизору, то нарушение не может быть отнесено к конкретной программе и указывается системное нарушение. [26]
Подкоманда BREAK предназначена для установки в отлаживаемой программе точки прерывания, в которой выполнение программы приостанавливается. [27]
При остановке программы в отладочном режиме ( в установленной точке прерывания или при пошагоном выполнении) в главном окне появляется отладочная подсказка К. При этом становятся доступными рабочие области памяти всех вызванных в данный момент функций. По умолчанию текущей является рабочая область памяти последней вызванной функции. [28]
Если же задержка обработки неотложного условия отсутствует, то точка прерывания также может находиться после завершения элемента операции, но перед тем местом, где произойдет возможное программное прерывание или прерывание при обращении к супервизору, связанное с операцией. В этом случае достоверным PSW, по определению, считается то, которое было заслано в ячейку старого PSW для программного прерывания или прерывания при обращении к супервизору. Даже если совокупное состояние может быть указано как достоверное, фиксируется нарушение, так как прерывание, связанное с операцией, потеряно. [29]
После прерывания управление возвращается, как правило, в точку прерывания, как будто никакого нарушения последовательности выполнения команд данной программы не было. Программист освобождается от необходимости работать с прерываниями. [30]