Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Часть II. Становимся программистами. F 2 Sav e Ope n F 5   F 6 Nex t flli*F 9       F1 0 Men u fill* » Qui t . F 2 Sav e Ope n F 5   F 6 Nex t flli*F 9       F1 0 Men u fill* » Qui t




мую команду. (Исполняемой называется любая команда, которая не является объяв- лением или комментарием. Именно исполняемая команда вызывает создание машин- ного кода во время компиляции.)

После запуска отладчик выполняет все команды вплоть до первой строки функции main (), а затем перехватывает управление. Теперь отладчик ожидает действий со сто- роны программиста.

раз выполните команду Step Over rhid e вновь на секунду перейдет в окно пользователя и затем вернется в окно редактирования программы. Теперь будет выде- лена следующая строка. Щелкните мышью на окне пользователя (User Screen), и вы увидите выведенную во время выполнения предыдущей команды строку

Эта программа соединяет две строки.

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

Когда вы попытаетесь выполнить команду Step Over в строке с вызовом функции cin . (), отладчик не вернет управление среде разработчика, как обычно. Может показаться, что программа зависла, но причина в другом: отладчик не перехва- тывает управления, пока не завершится команда, а функция getlin e () не может за- вершиться, пока пользователь не введет строку с клавиатуры.

Введите первую строку и нажмите <Enter>. Теперь отладчик перехватит управле- ние и         остановит             выполнение                   программы           после                   команды

<<  "Введите  строку        : ".                     еше один шаг и введите вторую  строку.

Если отладчик остановился и не возвращается в среду программиста при пошаговом выполнении, это означает, что программа ожидает какого-то события. Скорее всего, программа ожидает ввода с клавиатуры или с дру- гого внешнего устройства.

При попытке выполнить функцию concatstrin g {) в пошаговом режиме Step Over программа снова выполнит аварийный останов, как и ранее (рис.

 

// . .                            . .

// ...и

cout << << szStringl << "\n"; return


 

//

//                        с

voi d t


has receive d signal :


in t


34: 1


 

Open ZOOM Next         L               Menu

 

Ошибка в функции concatstring       заставляет программу ава- рийнозавершаться

Глава11.ОтладкапрограммнаC++                                                     127


Выведенное сообщение не поможет вам в поиске ошибки необходимо пошагово входить в функции и

Пошаговый режим с входом в функции

Отладчик позволяет программисту входить в функции и выполнять их в пошаго- вом режиме. Эта возможность понадобится нам при поиске первой ошибки в этой программе.

Сначала следует выполнить сброс программы. Для этого перезагрузите отладчик с помощью команды Program Reset.

Затем выполняйте программу в пошаговом режиме Step Over, пока не дойдете до функции (). После этого воспользуйтесь командой Step In (пошаговый режим с  заходом  в                     и указатель перейдет на начало функции

(>, как показано на рис.

 

Debug Project Options        Help

 

//        строки" pszTarget void             char

{ int

int

'\лм конец          строки

 

 

//                                  строку к

 

F 2 Sav e Ope n F 5   F 6 Nex t flli*F 9       F1 0 Men u fill* » Qui t

11.5. Команда Step In заставляет отладчик                    на первую выпол- няемуюстроку                                               функции

Между командами Step In и Step             нет никакой разницы, если только в процессе прохода не выполняется вызов функции.

 

 

Если ненамеренно выполнить команду Step In, отладчик может запросить имя файла с исходным кодом функции, о которой вы никогда не  слыша- ли. Возможно, этот исходный код находится в какой-то из библиотек. В этом случае щелкните на кнопке Cancel и попробуйте разобраться в наборе машинных инструкций (которые вряд ли много скажут даже опытным программистам). Чтобы вернуть себе после этого душевное рав- новесие, откройте окно редактирования программы, установите точку ос- танова так, как описано в следующем разделе, и выполните команду

А пока воспользуйтесь командой Step Over, чтобы выполнить первую исполняемую строку функции. Сразу  после  этого                                                                                  выведет такое же сообщение об ошибке, как и

 


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 209; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.01 с.)
Главная | Случайная страница | Обратная связь