Система визуального объектно-ориентированного проектирования C++Builder 107

Окно имеет вид, представленный на рис. 2.39 а. В его верхнем окне редактиро-
вания Expression вы можете ввести имя переменной или выражение. После этого,
щелкнув на кнопке Evaluate, вы увидите в окне Result значение этого выражения.
Эти возможности пока ничем не отличаются от возможностей рассмотренного ра-
нее окна наблюдений и даже слабее, поскольку дают значение только одной пере-
менной или одного выражения. Но если вы указали в окне Expression имя перемен-
ной, а не выражение, то вам становится доступной кнопка Modify, позволяющая
изменить значение переменной. Т.е. вы можете вмешаться в процесс выполнения
приложения и насильственно изменять значения переменных.

Пусть, например, мы решили изменить значение переменной А, вызвавшей
переполнение, и посмотреть, как будут далее протекать события в приложении.
Тогда мы должны в окне Expression указать имя этой переменной, в окне New value
написать ее новое значение в виде числа или какого-то выражения (на рис. 2.39 б
написано выражение «А/2е300>>) и нажать кнопку Modify. В результате значение
переменной в приложении изменится, что можно видеть в окне Result. Измененное
значение вы увидите и в окне наблюдения, если перейдете в него.

Evaluate/Modify

а)                                            6)
Рис. 2.39

Окно оценки и модификации в исходном состоянии (а) и после изменения значения А (6)

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

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

2.4.8.6 Выполнение приложения по шагам

Выше мы рассматривали способы собрать «статическую» информацию о состо-
янии приложения в момент, когда произошла ошибка выполнения. Но не всегда
такая информация дает полную картину происходящего. Чаще для того, чтобы
найти причину ошибки, надо выполнить какой-то фрагмент программы, наблюдая
изменения переменных при выполнении каждой команды.

Для прохода фрагмента программы по шагам можно использовать команды: