- •Глава 2 36
- •1 Задание 1 62
- •Лабораторная работа №1
- •Краткие теоретические сведения
- •1.1Создание консольного приложения
- •1.2Отладка программы
- •1.2.1Установка точек останова (Add breakpoint)
- •2.2Идентификаторы
- •2.3Ключевые слова
- •2.4Знаки операций
- •2.5Константы
- •2.6Комментарии
- •2.7.1Понятие типа данных
- •2.7.2Основные типы данных
- •2.7.3Целый тип (int).
- •2.7.4Символьный тип (char).
- •2.7.5Логический тип (bool).
- •2.7.6Вещественный тип (float, double и long double).
- •2.8Переменные
- •2.9Функции и объекты ввода/вывода
- •2.9.1Основные функции ввода/вывода в стиле с:
- •2.10Операции
- •2.10.2Операция определения размера sizeof
- •2.10.4Деление (/) и остаток от деления (%).
- •2.10.8Логические операции (&& и ||).
- •2.10.10 Условная операция (?:).
- •2.11Выражения
- •2.11.1Преобразование типов в выражении.
- •Задание к лабораторной работе №1
- •Контрольные вопросы к лабораторной работе №1
- •1.1Оператор «выражение»
- •1.2Операторы ветвления
- •1.2.1Условный оператор if... Else
- •1.2.2Об условиях в операторе if
- •1.2.3Оператор выбора switch
- •1.3Операторы передачи управления
- •1.3.1Оператор goto
- •1.3.2Оператор break
- •2 Тестирование программ
- •Домашнее Задание
- •Задание к лабораторной работе №2
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •2Операторы цикла
- •2.1Цикл с предусловием (while)
- •2.2Цикл с постусловием (do … while)
- •2.3Цикл с параметром for
- •3Дополнительные операторы передачи управления
- •3.1Оператор break
- •3.2Оператор continue
- •4Вложенные циклы
- •Домашнее Задание
- •Задание к лабораторной работе №3
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №3
- •4Программа пузырьковой сортировки
- •Домашнее Задание
- •Задание к лабораторной работе №4
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №4
- •0 Строка
- •1 Строка
- •5 Строка
- •2Ввод и вывод многомерных массивов
- •Домашнее Задание
- •Задание к лабораторной работе №5
- •4Ссылки
- •5Динамическое распределение памяти
- •5.1Использование стандартных функций malloc и free
- •5.2Использование операторов new и delete
- •Домашнее Задание
- •Задание к лабораторной работе № 6
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №6
- •Лабораторная работа №7 отладка программы краткие теоретические сведения
- •6Отладочные пункты меню
- •7Элементы отладки
- •7.1Контрольные точки
- •7.1.1Контрольные точки в исходном коде
- •7.1.2Адресные контрольные точки
- •7.1.3Контрольные точки данных
- •7.2Команда Run to Cursor
- •7.3Команда Pause
- •8Наблюдение за переменными
- •8.1Быстрый просмотр данных
- •9Инспектор отладки
- •9.1Инспекция локальных переменных
- •10Другие инструменты отладки
- •10.1Диалог Evaluate/Modify
- •10.2Окно cpu
- •10.3Стек вызовов
- •10.4Команда Go to Address
- •10.5Команда Program Reset
- •Задание на лабораторную работу №7
- •Контрольные вопросы к лабораторной работе №7
- •Приложение I
- •Приложение II Блоки схем алгоритмов согласно гост 19.002 – 80 и 19.003 – 80
- •Приложение III Оформление алгоритма программы в виде блок-схемы
- •Приложение IV Базовая программа для выполнения лабораторных работ
- •Приложение V
- •Приложение VI
- •Список используемых источников
7.1.2Адресные контрольные точки
Адресные контрольные точки во всем аналогичны точкам в исходном коде за исключением того, что при их установке указывается не строка исходного кода, а машинный адрес инструкции, на которой нужно приостановить программу. Такие контрольные точки полезны, если ваша программа завершается аварийно. В этом случае Windows выводит панель сообщения, в которой указывается адрес инструкции, вызвавшей ошибку.
Адресные контрольные точки и их свойства устанавливаются в диалоге, вызываемом командой Run>Add Breakpoint>Address Breakpoint... главного меню или из контекстного меню окна Breakpoint List. Установить адресную точку можно только во время исполнения программы или при ее остановке (например, в другой контрольной точке). При дальнейшем выполнении программы отладчик приостановит ее на инструкции с указанным адресом. Если эта инструкция соответствует некоторой строке исходного кода, контрольная точка будет показана в окне редактора. В противном случае она будет отображена в панели дизассемблера окна CPU.
7.1.3Контрольные точки данных
Контрольные точки на данных также устанавливаются при запущенной программе в диалоге, вызываемом командной Run>Add Breakpoint>Data Breakpoint... или Add Data Breakpoint в контекстном меню списка контрольных точек (рис. 5.5).
Рис. 5.5 Диалог Add Data Breakpoint
Контрольная точка на данных вызывает остановку программы, если в указанный элемент данных производится запись. В поле Address можно указать либо адрес, либо имя переменной. В поле Length указывается размер объекта, определяющий диапазон адресов, обращение к которым будет вызывать остановку. Для переменных встроенных типов размер устанавливается автоматически.
Как и для двух предыдущих видов, для контрольных точек данных можно задать условие и счетчик.
(левая половина окна)
(правая половина окна)
Рис. 5.6 Контрольные точки загрузки модуля
Команда Run Add Breakpoint>Module Load Breakpoint... открывает диалог Add Module, в котором задается имя файла (.exe, .dll, .осх или .bpl) для внесения его в список окна Modules. Загружаемые в память во время исполнения программы модули заносятся в это окно автоматически, однако если вы хотите, чтобы загрузка модуля вызывала остановку, то должны вручную ввести имя файла в список окна Modules до того, как модуль будет загружен (например, перед запуском программы).
На рис. 5.6 показано окно Modules. Добавить новый модуль в окно можно и через его контекстное меню (Рис. 5.7).
Рис. 5.7
Панель вверху слева показывает список модулей. Для выбранного модуля панель слева внизу показывает исходные файлы, входящие в его состав. Панель справа отображает список входных точек (глобальных символов) модуля.
7.2Команда Run to Cursor
Если установить курсор редактора кода на некоторую строку исходного кода и запустить программу командой Run to Cursor главного или контекстного меню редактора (можно просто нажать F4), то курсор будет играть роль “временной контрольной точки”. Достигнув строки, где находится курсор, программа остановится, как если бы там находилась простая контрольная точка.