Вопрос 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!