Основы офисного программирования и язык VBA


Окно контрольных выражений - Watch - часть 3


Взгляните, как выглядят эти окна после того, как мы добавили три контрольных выражения:

Окна отладчика после добавления контрольных выражений

увеличить изображение
Рис. 10.11.  Окна отладчика после добавления контрольных выражений

Еще один вид информации о текущем состоянии вычисления представлен стеком вызовов процедур. Имя каждой вызванной процедуры помещается на вершину этого стека в момент ее вызова и убирается из него сразу после завершения этого вызова. Просмотреть стек вызовов можно, нажав клавиши Ctrl+L или выбрав инструментальную кнопку или команду "Call Stack…" в меню View. Чаще всего, в окно "Стек вызова" попадают из окна Locals, щелкнув в нем имеющуюся для этой цели кнопку "…".

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

Окна отладчика в момент прерывания

увеличить изображение
Рис. 10.12.  Окна отладчика в момент прерывания

Заметьте, полученной информации достаточно, чтобы понять в какой процедуре произошло изменение значения переменной info. Но эта процедура рекурсивна и вызывалась неоднократно. Поэтому хотелось бы знать, на каком шаге ее вызова произошло изменение контрольной переменной. Для этого и служит стек вызовов, окно которого и было открыто щелчком соответствующей кнопки в окне Locals.

Окно стека вызовов

Рис. 10.13.  Окно стека вызовов

Три вызова функции SearchAndInsert были выполнены, прежде чем изменилось значение контрольной переменной. К сожалению, в окне стека вызовов не указаны параметры соответствующих вызовов. Но получить информацию об их значениях и о состоянии локальных переменных вызовов можно. Для этого нужно выделить интересующий вызов в стеке и щелкнуть по кнопке "Show".В результате в окне Locals ,будут отображены значения локальных переменных в момент выделенного вызова.

Разговор о средствах отладки будет не полным, если не рассмотреть специальный объект Debug.




Начало  Назад  Вперед



Книжный магазин