Trace Into

Команда Trace Into эквивалентна Step Over в случае, когда текущий оператор не содержит вызовов функций. Если же оператор вызывает некоторую функцию, то отладчик по команде Trace Into переходит на строку ее заголовка (заголовок при желании тоже можно рассматривать как исполняемый оператор, ответственный за инициализацию локальных переменных-параметров). При следующей команде (все равно – Step Over или Trace Into) текущим станет первый исполняемый оператор тела функции. Trace Into “входит внутрь” функции.

При выполнении команд Step Over и Trace Into в окне CPU отладчик исполняет не операторы, а отдельные машинные инструкции.

Задание на лабораторную работу №7

1. Записать алгоритм своего второго задания из лабораторной работы № 5.

2. Написать программу своего второго задания из лабораторной работы № 5.

3. Просмотреть пошаговое исполнение программы.

4. Открыть окно списка наблюдаемых переменных и ввести в список необходимые переменные, которые будут просматриваться при пошаговом выполнении программы.

5. Провести пошаговое выполнение программы с просмотром переменных.

6. Установить 3 простые контрольные точки и провести выполнение программы.

7. Установить контрольную точку со счетчиком проходов в теле цикла и провести выполнение программы.

контрольные вопросы к лабораторной работе №7

1. Как установить контрольную точку и какие виды контрольных точек Вы знаете?

2. Какие виды наблюдения за переменными Вы знаете? Охарактеризуйте их.

3. Если наблюдаемый объект – массив, как его лучше наблюдать? При ответе на вопрос выполнить самостоятельное исследование способов наблюдения.

4. Как выполняется инспекция локальных переменных?

5. Чем отличаются команды пошагового выполнения программы Step Over и Trace Into?


Приложение I

Таблица I.1. Список ключевых слов C++

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template  

Таблица I.2. Константы в языке C++

Тип константы Формат Примеры
Целая Десятичный: последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7) Шестнадцатеричный: 0х или 0Х, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) 8, 0, 199226 01, 020, 07155 0хА, 0xlB8, 0X00FF
Вещественная Десятичный: [цифры]. [цифры] Экспоненциальный: [цифры][.][цифры]{Е||е}[+;-][цифры] 5.7,.001, 35. 0.2Е6, .11е-3,.5Е10
Символьная Один или два символа, заключенных в апострофы 'А', 'ю', '*', 'db', '\0', '\n', '\012', '\0x7\0x7'
Строковая Последовательность символов, заключенная в кавычки "Это строка\n"

Таблица I.3. Управляющие последовательности в языке C++

Изображение Шестнадцатеричный код Наименование
  Звуковой сигнал
\b   Возврат на шаг
\f С Перевод страницы (формата)
\n А Перевод строки
\r D Возврат каретки
\t   Горизонтальная табуляция
\v В Вертикальная табуляция
\\ Обратная косая черта
\’   Апостроф
\"   Кавычка
\? 3F Вопросительный знак
\0ddd Восьмеричный код символа
\0xddd ddd Шестнадцатеричный код символа

Таблица I.4. Основные операции языка C++

Операция Краткое описание
Унарные операции
++ увеличение на 1
-- уменьшение на 1
Sizeof Размер
~ поразрядное отрицание
! логическое отрицание
- арифметическое отрицание (унарный минус)
+ унарный плюс
& взятие адреса
* разадресация
new выделение памяти
delete освобождение памяти
(type) преобразование типа
Бинарные и тернарная операции
* умножение
/ деление
% остаток от деления
+ сложение
- вычитание
<< сдвиг влево
>> сдвиг вправо
< меньше
<= меньше или равно
> больше
>= больше или равно
== равно
!= не равно
& поразрядная конъюнкция (И)
^ поразрядное исключающее ИЛИ
| поразрядная дизъюнкция (ИЛИ)
&& логическое И
|| логическое ИЛИ
?: условная операция (тернарная)  
= присваивание  
*= умножение с присваиванием  
/= деление с присваиванием  
%= остаток от деления с присваиванием  
+= сложение с присваиванием  
-= вычитание с присваиванием  
<<= сдвиг влево с присваиванием  
>>= сдвиг вправо с присваиванием  
&= поразрядное И с присваиванием  
|= поразрядное ИЛИ с присваиванием  
^= поразрядное исключающее ИЛИ с присваиванием  
, последовательное вычисление  

Таблица I.5. Элементы спецификатора преобразования

Элемент Символ Аргумент Описание
флаг -   Выровнять вывод по левому краю поля.
      Заполнить свободные позиции нулями вместо пробелов.
  +   Всегда выводить знак числа.
  пробел   Вывести пробел на месте знака, если число положительное.
  #   Вывести 0 перед восьмеричным или 0х перед шестнадцатеричным значением.
поле число   Минимальная ширина поля вывода.
точность число   Для строк – максимальное число выводимых символов; для целых – минимальное число выводимых цифр; для вещественных – число цифр дробной части.
размер h   Аргумент – короткое целое.
  l   Аргумент – длинное целое.
  L   Аргумент имеет тип long double.
символ типа d целое Форматировать как десятичное целое со знаком.
  i целое То же, что и d.
  о целое Форматировать как восьмеричное без знака.
  u целое Форматировать как десятичное без знака.
  х целое Форматировать как шестнадцатеричное в нижнем регистре.
  Х целое Форматировать как шестнадцатеричное в верхнем регистре.
  f вещественное Вещественное в форме [-]dddd.dddd.
  е вещественное Вещественное в форме [-]d.dddde[+|-]dd.
  Е вещественное То же, что и е, с заменой е на Е.
  g вещественное Использовать форму f или е в зависимости от величины числа и ширины поля.
  G вещественное То же, что и g – но форма f или Е.
  с символ Вывести одиночный символ.
  s строка Вывести строку.
  n указатель Аргумент – указатель на переменную типа int. В нее записывается количество выведенных к данному моменту символов.
  р указатель Вывести указатель в виде шестнадцатеричного числа ХХХХХХХХ.

Приложение II


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: