Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
25.09.2025
Размер:
468.36 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра РС

отчет

по лабораторной работе №2

по дисциплине «Информатика»

Тема: «Возможности встроенного отладчика»

Студент гр. фыв

фыв

Преподаватель

Мамчур Р.М.

Санкт-Петербург

2023

Цель работы: знакомство с понятием «отладка»; изучение возможностей встроенного отладчика и встроенной справки.

Краткие теоретические сведения

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

  • проектирования (оформление формы и/или написание кода);

  • вычисления (выполнения);

  • прерывания.

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

  1. Основные отладочные команды приведены в табл. 1.

Таблица 1

Действие

Команда

меню Run

Горячие

клавиши

Кнопки на

панели

инструментов

1

2

3

4

Запуск программы на исполнение (переход проектирование/вычисление, прерывание/вычисление)

Run

F9

Прерывание выполнения (переход

вычисление/прерывание)

Program

Pause

Сброс программы (переход

прерывание/проектирование)

Program

Reset

Ctrl+F2

Трассировка (пооператорный

режим выполнения). При вызове

процедур и функций в этом

режиме начинается их пошаговое

выполнение. После выполнения

очередного оператора

происходит переход в режим

прерывания

Trace

Into

F7

Пошаговый режим выполнения

программы. В этом случае Вызов

функций выполняет за один шаг,

БЕЗ захода в операторы функции

Step Over

F8

Выполнить программу до курсора

и перейти в состояние

прерывания

Run to

Cursor

F4

Выполнить функцию от позиции

курсора и до конца, после чего

перейти в режим прерывания

Run Until

Return

Shift+F8

Переход на строку с

выполняемым оператором

(просматривался код большой

программы, а место останова

было утеряно)

Shoe Execution

Point

  1. Окно Watches

Предназначено для просмотра текущих значений переменных, когда программа находится в состоянии прерывания.

Для его открытия: View > Debug Windows > Watches (аналог – Ctrl+Alt+W).

Для добавления в список новой переменной:

а) находясь в окне Watches, нажать клавишу Insert или выполнить комбинацию Ctrl+A, после чего в появившемся окне в поле Expression ввести имя нужной переменной;

б) в окне модуля установить курсор в любую точку имени нужной переменной, вызвать контекстное меню (правая кнопка мыши) и выбрать Debug > Add Watchs at Cursor.

в) в окне модуля установить курсор в любую точку имени нужной переменной и выполнить комбинацию Ctrl+F5.

Для удаления переменной из списка достаточно выделить ее строку в списке и нажать клавишу Delete.

Замечания.

1. Существует так называемая «подсказка оценки выражения», благодаря которой можно узнать текущее значение переменной (или выражения) непосредственно в окне модуля (программа должна находиться в режиме прерывания). Достаточно задержать курсор мыши над именем нужной переменной или выделенным выражением, и под курсором появится окошко инструментальной подсказки с именем переменной и ее текущим значением.

2. Существует окно Local Variables (для открытия View > Debug Windows > Local Variables), внешне похожее на окно Watch List, однако переменные в нем добавляются автоматически и представляют собой все локальные переменные текущей функции.

  1. Окно Evaluate/Modify

Служит для оценки выражений и изменения значений переменных. Для открытия окна:

а) Run Evaluate/Modify;

б) в редакторе кода установить курсор на нужной переменной или выражении и в контекстном меню выбрать Debug Evalute/Modify; в) в редакторе кода установить курсор на нужной переменной или выражении и выполнить комбинацию Ctrl+F7.

Для оценки выражений:

1.Открыть окно Evaluate/Modify;

2.В поле Expression ввести имя переменной (или выражение), значение которой нужно оценить.

3.Нажать кнопку Evaluate. Результат оценки будет отображен поле

Result.

Для изменения значения переменной

1.Открыть окно Evaluate/Modify.

2.Указать имя переменной в поле Expression

3.Указать ее желаемое значение в поле New Value

4.Нажать кнопку Modify.

Замечание: окно Evaluate/Modify часто используется в качестве простого калькулятора.

  1. Точки останова (точки прерывания)

Ставятся в контрольных точках программы. Программа запускается на выполнение. Достигнув первой по ходу вычисления точки останова, выполнение приостанавливается, программа переходит в состояние прерывания. Дальнейший запуск программы на исполнение приведет к отработке программного кода до очередной встретившейся точки останова.

Для управления простыми точками останова (установки и снятия) служит специальное поле слева от кода, закрашенное серым цветом. Щелчок мышью по этому полю рядом с нужной строкой приводит к установке точки останова (строка приобретает красный фон, а слева от нее появляется красная точка).

Для снятия точки останова нужно щелкнуть мышью по красной точке слева от помеченной строки.

Упражнение 1. Основы работы во встроенном отладчике

Задача: Пользуясь встроенной справкой (Help > C++ Builder Help), определить, что выполняет функция fmod и операция «%».

Т.к. встроенная справка C++ Builder Help является нерабочей, то мы воспользуемся справкой из другого источника.

Воспользуемся ресурсом: https://learn.microsoft.com/ru-ru/cpp/c-runtime-library/reference/fmod-fmodf?view=msvc-170

Функция fmod вычисляет остаток f от деления x / y в виде числа с плавающей запятой следующим образом: x = i * y + f , где i — это целое число, f имеет тот же знак, что и x , а абсолютное значение f меньше абсолютного значения y.

Пример кода программы:

#include <math.h>

#include <stdio.h>

int main( void )

{

double w = -10.0, x = 3.0, z;

z = fmod( w, x );

printf( "The remainder of %.2f / %.2f is %f\n", w, x, z );

}

Вывод данных:

The remainder of -10.00 / 3.00 is -1.000000

Упражнение 1. Основы работы во встроенном отладчике.

Задание 1-2. Запустил проект prExampl2Consol, ввел число 726 и посмотрел на результат вычислений.

Ввод данных:

726

Вывод данных:

Vvedite 3-h zna4noe 4islo 726

Resultat: 15

Скриншот выполнения консольной программы:

Повторил работу программы для нескольких разных трехзначных чисел.

Ввод данных:

282

Вывод данных:

Vvedite 3-h zna4noe 4islo 282

Resultat: 12

Скриншот выполнения консольной программы:

Ввод данных:

999

Вывод данных:

Vvedite 3-h zna4noe 4islo 999

Resultat: 27

Скриншот выполнения консольной программы:

Понял, что вычисляет программа.

Установил курсор на строку 25 и выполнил ПКМ > Dedug > Run To Cursor. (запустить выполнение программы «до курсора».) Программа перевелась отладчиком в режим прерывания:

Ввел трехзначное число 541. Получил следующий результат выполнения консольной программы:

Вернувшись в окно C++ Builder наблюдаю следующее: (задана точка остановки в строке 25, данная строка выделена)

В окне модуля поочередно установил курсор рядом с каждой переменной программы и выполнил комбинацию Ctrl+F5. Зашел в окно Wach List выполнив Ctrl+Alt+W. Наблюдаю следующие значения переменных. Вновь попыталась понять, что за вычисления производятся в программе:

Сбросил программу. Установил курсор на строку №20 и вновь запустил выполнение программы «до курсора». Ввел в окне программы другое трехзначное значение и нажал Enter. Проводя трассировку до строки №25, и просматривая значения переменных в окне “Контрольные значения”, рассмотрела работу программы:

Удалил переменные r2 и r1 из Watch List.

Открыл окно Local Variables, просмотрел его содержимое. (Ctrl+Alt+L)

Вызвал окно Evaluate/Modify, изменить значение переменной r1 на 999

Просмотрел эффект в окнах Watch List и Local Variables.

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

Установил точку останова в строку №28.

Запустил программу на дальнейшее вычисление и убедился, что результаты изменения (п. 13) не были учтены при дальнейшей работе программы. Продумал причины не изменения. Сбросил программу.

Схема алгоритма:

Код модуля cpp из проекта prExampl2Consol:

//---------------------------------------------------------------------------

#include <stdio.h>

#include <iostream>

#include <vcl.h>

#include <math.h>

#pragma argsused

//---------------------------------------------------------------------------

int main(int argc, char* argv[])

{ using namespace std;

int z, r;

int r1, r2, r3;

cout << "Vvedite 3-h zna4noe 4islo ";

cin >> z;

r1 = (z / 100);

r2 = fmod(z / 10, 10);

r3 = z % 10;

r = r1 + r2 + r3;

cout << "Resultat: " << r;

cin >> z;

return 0;

}

Вывод: В ходе выполнения работы было изучено понятие "отладка" и ознакомлено с возможностями встроенного отладчика и встроенной справки. Были изучены основные методы отладки программного кода, такие как установка точек останова, просмотр значений переменных и отслеживание выполнения программы. Это позволит эффективно и быстро находить и исправлять ошибки в программном коде, что повысит качество и надежность разрабатываемого программного продукта.

Соседние файлы в папке Лабораторочки