Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1_---_ZNAKOMSTVO_SO_SREDOJ_VISUAL.doc
Скачиваний:
10
Добавлен:
19.02.2016
Размер:
316.42 Кб
Скачать

3.2.13. Установка точки прерывания и пошаговое выполнение программы.

Далее необходимо перейти к пошаговому выполнению программы. Однако начинать с самого начала программы не удобно, так как при этом придется пройти через стандартный код Visual C++. Отладка должна начать в том месте программы, где предполагается наличие ошибки.

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

Поместим точку прерывания в начале фрагмента для вычисления среднего арифметического, т.е. в первой строке цикла for. Для этого установим перед for текстовый курсор и нажмем клавишу F9. Далее запустим программу в отладчике – для этого достаточно выполнить команду Build -> Start Debug -> Go. На экране появится окно приложения и можно будет выполнить команду меню File->Calculate. В результате код метода OnCalculateAverage() выполнится до строки, на которой установлена точка прерывания. Затем программа остановится и отобразит в окне Visual C++ код метода.

Для пошагового выполнения программы используем клавишу F10. Текущей становится следующая строка программы. Именно в ней происходит суммирование чисел для получения накапливаемой суммы в переменной Sum.

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

3.2.14. Проверка значений переменных во время выполнения программы.

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

Помимо экранной подсказки, переменная Sum со своим значением отображена в окне Auto, расположенном в левом нижнем углу (рис. 11).

Рис. 11 Просмотр значений переменных

В этом окне приведены значения последних переменных, с которыми работал Visual C++.

Просмотр программы показал, что сумма не была обнулена перед началом цикла. Для внесения исправлений вначале необходимо завершить сеанс отладки, выполнив команду Debug -> Stop Debugging, затем отредактировать метод и присвоить переменной Sum начальное значение 0:

void CBuggyView::OnFileCalculate()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

float Sum = 0;

float Average;

for (int i = 1; i < 5; i++)

{

Sum += pDoc->data[i];

}

Average = Sum / 5;

OutputString.Format("Average = %.3f", Average);

Invalidate();

}

Ошибка с инициализацией исправлена. После запуска программы получим значение 2.800. Результат ошибочный. Снова начнем отладку командой Build ->Start Debug ->Go до точки прерывания. Войдем в цикл, нажав клавишу F10. Проверим значение переменной Sum. Оно равно 0. Теперь проверим значение, которое к ней прибавляется. Должно прибавляться значение 1, а на самом деле прибавляется 2. Т.е. второй ошибкой данной программы является организация цикла с 1, а не с 0. Исправим эту ошибку и запустим программу. Теперь среднее арифметическое значение чисел от 1 до 5 равно 3.

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

3.2.15. Закончив отладку, следует удалить отладочную информацию из исполняемого файла. Для этого следует выполнить команду Build -> Set Active Configuration и выбрать из раскрывающегося списка строку buggy – Win32 Release, так как по умолчанию в программы на Visual C++ включается большой объем информации, используемой отладчиком.

13

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]