Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Действия в режиме паузы



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

q продолжить выполнение в пошаговом режиме. Для этого можно воспользоваться меню Debug | Step Into или нажать клавишу <F8>. При этом будет выполнена текущая строка (помеченная желтым цветом), и выделится следующая строка вашего программного кода. Если была выделена строка, в которой происходит вызов процедуры или функции, то мы "шагнем" (Step Into) внутрь этой процедуры;

q если в строке программы происходит вызов какой-то процедуры, которая уже отлажена и проблем вызвать не должна, то у вас есть возможность выполнить ее без остановок и перейти к следующему оператору. Для этой цели используется команду меню Debug | Step Over (или <Shift>+<F8>);

q если вы все-таки зашли в процедуру, выполнили там необходимые действия и хотите быстро довести ее выполнение до конца, то в вашем распоряжении — меню Debug | Step Out (или <Ctrl>+<Shift>+<F8>);

q если вы хотите исполнить код не пошагово, а фрагментами (например, чтобы не проводить пошаговое выполнение больших циклов), вы можете щелкнуть правой кнопкой мыши по нужной строке кода и в контекстном меню выбрать Run to Cursor (альтернатива — воспользоваться той же командой в меню Debug или нажать <Ctrl>+<F8>). Программа пройдет вперед на выбранную вами строку и вновь остановится;

q если вам нужно "перепрыгнуть" через какой-то фрагмент кода, вызывающий ошибку (т. е. просто пропустить его без выполнения), можно воспользоваться командой меню Debug | Set Next Statement (или нажать <Ctrl>+<F9>), а затем перетащить желтую стрелку слева от кода вниз (или вверх) на нужную строку. В последних версиях Office в режиме останова можно сразу перетаскивать желтую стрелку, не вызывая команды. Альтернативный способ пропуска команд — выделить ненужный блок и при помощи кнопки Comment Block панели инструментов Edit его закомментировать (но тогда потом придется снимать комментарии);

q если в процессе просмотра кода вы пролистали код достаточно далеко и вам хочется вернуться к месту остановки (строка, выделенная желтым) без долгих поисков, то в вашем распоряжении команда Show Next Statement;

q чтобы просто продолжить выполнение программы после остановки, можно нажать клавишу <F5> или воспользоваться командой меню в меню Run | Continue (она появится вместо команды Run). Прекратить выполнение программы можно при помощи команды Reset в том же меню или клавишами <Alt>+<F4>. Кроме того, в вашем распоряжении одноименные кнопки на панели инструментов Standard.

Чаще всего переход в режим остановки нужен, чтобы просмотреть текущие значения переменных или исправить код. Текущие значения переменных можно просмотреть при помощи окон Immediate, Locals или Watch (о них будет рассказано в следующих разделах), а можно воспользоваться подсказками в самом коде. Для того чтобы получить информацию о текущем значении переменной, достаточно навести на нее указатель мыши (если у вас остался включен по умолчанию параметр Auto Data Tips в окне Options, меню Tools | Options).

Чтобы просмотреть информацию об области видимости и типе данных переменной, необходимо установить на нее курсор ввода текста и в меню Edit выбрать Quick Info (можно нажать клавиши <Ctrl>+<I>).

Все возможности редактирования кода в режиме отладки остаются. Если вы поняли, что переменной (свойству объекта) присвоено неверное значение, то вы можете исправить соответствующую строку, вернуться назад при помощи Set Next Statement (<Ctrl>+<F9>) и продолжить выполнение с исправленным значением.

Но возможностей подсказок в коде нам не всегда достаточно. Когда переменных очень много, или, например, к проблемам может привести значение свойства, которое мы даже не назначали, или во многих других ситуациях нам могут потребоваться специализированные окна Immediate, Locals и Watch.

12.4. Окно Immediate

Это мое любимое средство отладки. Окно Immediate предназначено для немедленного (immediate) выполнения программного кода, вызвать его можно через меню View или клавишами <Ctrl>+<G>. В этом окне можно:

q просматривать и изменять значения переменных и свойств объекта. Посмотреть значения переменных можно, набрав в окне Immediate:

Print nResult

Print oDoc.FullName

или еще проще:

?nResult

?oDoc.FullName

В данном случае Print() — это метод объекта Debug. Вывод в окно Immediate можно произвести при помощи этого объекта и просто из кода программы:

Debug.Print nResult

Преимуществом этого метода перед обычным MsgBox() является то, что при работе не в отладочном окружении (т. е. когда ваша программа уже эксплуатируется пользователями) все вызовы методов объекта Debug просто игнорируются (у этого объекта есть еще один метод Assert() — переход по условию).

Изменение значений перемененных и свойств в окне Immediate производится точно так же, как в коде программы;

q вызывать процедуры и функции вашей программы или методы объектов — точно так же, как в коде программы. Microsoft рекомендует перед вставкой в программу проверять потенциально опасный код (например, который может привести к зависанию системы) в этом окне;

q а можно использовать это окно просто как калькулятор, вводя там выражения вида:

Print 25*115

Чтобы не печатать в окне Immediate выражения и имена переменных, которые уже есть в коде, можно воспользоваться перетаскиванием их в окно Immediate из окна редактора кода с нажатой клавишей <Ctrl> (чтобы происходило копирование).

12.5. Окно Locals

Очень часто бывает так, что вам нужно просмотреть значения всех переменных и свойств объектов, чтобы определить недопустимые, и сразу же их поменять. В этом случае возиться с каждым свойством/переменной в окне Immediate неэффективно. В этой ситуации гораздо удобнее использовать окно Locals (меню View | Locals Window). В этом окне выводятся значения всех переменных и свойств объектов, доступных в настоящий момент.

Чтобы поменять значение переменной или свойства, необходимо выделить нужную строку в окне Locals, а потом в этой строке аккуратно курсором выделить в столбце Value значение. Поверх старого значения можно впечатать новое. Если значение должно быть строковым, то при печати заключите его в кавычки (как в коде), а если это значение даты — то в символы решетки (#).

Через окно Locals можно также менять значения элементов массивов и коллекций.

12.6. Окно Watches

Окно Watches (его можно открыть так же, как и остальные, при помощи меню View) позволяет контролировать ход выполнения программы, производя "наблюдение" в соответствии с заданными вами условиями. При работе с ним вам вначале потребуется определить значение, которое послужит сигналом к тому, чтобы вмешаться в ход выполнения программы. Это значение называется контролируемым выражением. Оно может быть совсем простым, например, nResult = 10, а может быть сложным, таким как:

InStr(oDoc.Fullname, "Document") <> 0

Создать контролируемое выражение можно так:

q щелкнуть по переменной, свойству или выражению в окне редактора кода правой кнопкой мыши и в контекстном меню выбрать Add Watch. Откроется диалоговое окно Add Watch для задания данного выражения;

q воспользоваться командой Add Watch в меню Debug;

q воспользоваться командой Quick Watch в меню Debug. В этом случае в окно Watch будет помещено автоматически сгенерированное выражение в зависимости от того, в каком месте кода находился у вас курсор ввода. В качестве условия для "срабатывания" в него будет помещено текущее значение переменной или свойства. Это контролируемое выражение в случае необходимости можно будет отредактировать;

q просто перетащить выражение из кода в окно Watches.

В любом случае откроется окно Add Watch. В нем вы должны написать (или дописать) контролируемое выражение, чтобы оно возвращало True или False, как и в конструкции If...Else, выбрать "область действия" данного контролируемого выражения (в виде процедуры или модуля), а также принять главное решение: что делать в ходе наблюдения. Вариантов у вас три:

q Watch Expression — ничего не делать (просто менять значение в столбце Value в окне Watches);

q Break When Value Is True — переводить программу в режим паузы, если контролируемое выражение "сработало" (его значение стало равно True);

q Break When Value Changes —переводить программу в режим паузы, если значение контролируемого выражения изменилось.





Дата публикования: 2014-11-28; Прочитано: 245 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...