Вопрос 4. Использование интегрированного отладчика Microsoft Visual
C ++.
Понятие отладки. Необходимость использования отладчика .
Как вы уже знаете - существует два вида ошибок программы.
Ошибка на этапе компиляции - ошибка синтаксиса языка программирования. Такие ошибки или опечатки контролируются компилятором. Программа, содержащая такую ошибку, просто не запустится на выполнение и компилятор укажет в какой строке кода произошла ошибка.
Ошибка на этапе выполнения - ошибка, приводящая к некорректной работе программы, либо к полной остановке последней. При этом следует учитывать, что такая ошибка компилятором не контролируется. Лишь в редких случаях компилятор может выдать предупреждение о какой-то некорректной инструкции, но в общем и целом в таких ситуациях программисту приходится выпутываться самому.
Именно об ошибках на этапе выполнения и пойдет речь. Зачастую, чтобы обнаружить подобную ошибку необходимо пройти некий фрагмент программы по шагам, так как если бы программа выполнялась. Безусловно, при этом желательно чётко просчитать, какое значение в определенный момент времени находится в конкретных переменных. Можно, конечно же, произвести такой подсчёт на листе бумаги, построчно анализируя программу, однако в среде разработки Visual Studio есть специальное средство для организации анализа программы - отладчик.
Данный вопрос посвящён основам работы с отладчиком.
Выполнение программы по шагам .
|
|
Предположим, что мы собираемся проанализировать следующий код:
#include <windows.h>
#include <iostream>
using namespace std;
int main(void)
{
system("cls");
int i;
int sum=0;
for(i=1;i<15;i++)
{
sum+=i;
cout<<sum<<endl;
}
return 0;
}
Для начала создайте проект и наберите этот код. Скомпилируйте его и
убедитесь, что нет синтаксических ошибок. Компиляция должна осуществляться при включённом режиме Debug.
Теперь приступим. Нажмите на клавиатуре функциональную клавишу F10. Рядом с первой выполняемой строкой кода у вас на экране появится желтая стрелка.
Именно эта стрелка указывает, какая строка кода сейчас "выполняется".
Для передвижения на следующий шаг программы снова нажмите F10. И вы попадёте в следующую строку.
Обратите внимание на то, что внизу экрана у вас располагается набор
вкладок для анализа переменных:
Локальные - эта вкладка предназначена для просмотра значений переменных,
которые существуют в момент выполнения текущей строки кода.
Вписать на данной вкладке что-то от себя нельзя - это автоматическая
функция.
Видимые - эта вкладка предназначена для просмотра значений переменных,
|
|
которые находятся в поле видимости в данный момент исполнения
программы. Вписать на данной вкладке что-то от себя нельзя - это также
автоматическая функция.
Окно интерпретации - данная вкладка предназначена, как раз для тех случаев,
когда необходимо самому выбрать переменную для
просмотра. Вы просто вписываете в поле Name название
переменной и она отображается независимо от
выполняемого кода.
Теперь просто нажимая F10, "пройдитесь" по коду и посмотрите, как
будут изменяться данные во вкладках.
Примечание 1: Если вы хотите остановить отладчик раньше, чем завершится
анализ кода нажмите сочетание клавиш Shift+F5 .
Примечание 2: О тладчик начинает анализ с первой строки программы. Если
Нужно запустить работу отладчика с определенной строки
Программы - установите курсор в необходимую строку и
нажмите сочетание клавиш Сtrl+F10.
Точка останова .
|
|
Рассмотрим ситуацию, когда нам необходимо выполнить отрезок кода
и остановившись в определённом месте, запустить отладчик. Для этого используется так называемая точка останова.
Наберите следующий код.
#include <windows.h>
#include <iostream>
using namespace std;
int main(void)
{
system("cls");
int i;
cout<<"Begin\n";
for(i=1;i<10;i++)
{
cout<<i<<endl;
}
cout<<"End\n";
return 0;
}
Откомпилируйте. Установите курсор в строку
cout << i << endl ;
и нажмите клавишу F9. Рядом со строкой появилась красная точка. Это и есть точка
останова.
Теперь нажмите F5, программа запустится, выполнится до того момента,
где установлена точка останова и перейдёт в режим отладчика. Используя клавишу F10, можно далее пошагово отлаживать программу.
Обратите внимание на состояние консоли (окна программы). Здесь отображается все, что успело произойти:
Умная» точка останова .
Только что мы запустили анализ программы с определённого места. Однако, заметим, что отладчик сработал сразу, как только началось выполнение тела цикла, т. е. на первой итерации. Это неудобно, в случае, если итераций большое количество, и несколько из них вам надо пропустить. Другими словами - вы хотите начать анализ, например, с 5-ой итерации цикла. Решить проблему просто - сделать точку останова "умной".
|
|
Для этого на самой точке щёлкаете правой кнопкой мыши и в открывшемся
меню выбираете Условие. Перед вами появилось окошко Условие для точки
останова , в котором нам необходимо вписать условие, при котором запустится отладчик. Наше условие i==5. Выбираем Верно - то есть остановиться, когда условие станет истинным. Нажимаем ОК.
Далее нажимаем F5 и смотрим, что произойдет. Как видите, все удачно - отладчик запустился в нужный нам момент.
Примечание: Снять точку останова можно простым нажатием F9, в той
строке, где точка располагается.
Дата добавления: 2021-07-19; просмотров: 69; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!