Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaPLR2012_090303.docx
Скачиваний:
24
Добавлен:
22.08.2019
Размер:
439.04 Кб
Скачать

Окна отладчика

В процессе пошаговой отладки программист может использовать целый ряд окон отладчика для наблюдения за состоянием программы. Каждому окну соответствует кнопка на панели инструментов Debug, с помощью которой можно показывать и прятать соответствующее окно (Error: Reference source not found). Можно также показывать и скрывать отладочные окна, используя команды из меню Debug-> Windows.

Далее приводится описание основных отладочных окон.

В окне Variables (Alt+4) автоматически отображаются значения локальных переменных и переменных-членов класса, адресуемого указателем this (закладка This). В нём же отображаются значения всех переменных, которые используются в предыдущей и текущей инструкциях программы (закладка Auto). На закладке Auto также показываются возвращаемые значения функций.

Рис. 8. Панель отладки

Окно Watch (Alt+3) позволяет просматривать значения любых переменных и выражений. Их можно размещать на любой из четырёх закладок (Watch 1, Watch 2, Watch 3 или Watch 4). Добавить переменную или выражение в окно Watch можно одним из следующих способов:

  • Ввести с клавиатуры.

  • Перетащить из окна редактора (для этого нужно предварительно выделить нужную переменную или выражение) или из окна Variables.

  • Добавить из окна Quick watch (см. ниже).

Окно Call Stack (Alt+7) показывает последовательность вызванных функций (стек вызовов). Используя контекстное меню, можно отобразить также типы (команда Show Parameter Types) и значения (команда Show Parameter Values) параметров этих функций. К тексту любой функции можно переместиться, сделав двойной щелчок на её имени. Кроме того, точки останова можно ставить прямо в этом окне.

Окно Quick Watch Это окно имеет возможности, аналогичные возможностям окна Watch, с той разницей, что в нём можно просматривать только одну переменную за раз. Используется, когда вам не хочется добавлять переменную в окно Watch. Его можно вызвать, используя комбинацию Shift+F9.

Окно Threads показывает список потоков, созданных вашей программой. Позволяет приостановить (suspend) или продолжить (resume) любой поток, а также установить на него фокус (то есть сделать его текущим). Этот диалог – практически единственное средство для отладки многопоточных приложений, которое предоставляет Visual C++.

Окно Modules показывает список загруженных модулей. Для каждого модуля выводится диапазон адресов и имя файла.

Чтобы изменить значение переменной, в большинстве окон достаточно сделать двойной щелчок на старом значении и ввести новое. Значение выражений изменять нельзя.

    1. 3. Порядок выполнения работы

  1. Ознакомиться с теоретическими сведениями.

  2. Получить вариант задания у преподавателя.

  3. Выполнить задание.

  4. Продемонстрировать выполнение работы преподавателю.

  5. Оформить отчет.

  6. Защитить лабораторную работу.

    1. 4. Требования к оформлению отчета

Отчет по лабораторной работе должен содержать следующие разделы:

  • титульный лист;

  • цель работы:

  • задание на лабораторную работу;

  • ход работы;

  • ответы на контрольные вопросы;

  • выводы по проделанной работе.

    1. 5. Задание на работу

  1. Напишите программу решения биквадратного уравнения.

  2. Напишите программу подсчета простых чисел до 1000.

  3. Напишите программу определения факториала.

  4. Напишите программу определения числа Фибоначчи.

  5. Напишите программу, определяющую все возможные варианты сочетаний из n чисел.

  6. Напишите программу, определяющую все числа до n, имеющие не более m делителей.

  7. Используя программу:

#include "stdafx.h"

#include <string>

#include <conio.h>

void print_string(_TCHAR *string, int count){

for(int i = 0; i < count; i ++ )

for(int j = 0; j < wcslen(string); j++)

putwchar(string[j]);

}

int _tmain(int argc, _TCHAR* argv[])

{

if(argc != 3){

printf(" incorrect args");

}else{

wchar_t *end;

int count = wcstol(argv[2], &end, 10);

printf("Print: %ws %d times\n",

argv[1],

count);

print_string(argv[1], count);

}

getch();

return 0;

}

В параметрах запуска приложения укажите «“hello world” 4» (кавычки обязательны). Измените параметры программы. Что изменится?

Определите, как зависят действия в функции print_string от параметров командной строки.

Замените:

printf("Print: %ws %d times\n", argv[1], count);

на:

printf("Print: %s %d times\n", argv[1], count);

Что изменилось?

С помощью отладчика определите, чем отличается char* argv[] от _TCHAR * argv.

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

  1. int j = 0, i = 5;

j += i;

j += j++;

j -= 2, i++;

  1. int j = 0, i = 11;

j += i;

j = j++;

(j -= i++), (j+=2);

  1. int j = 2, i=j;

j += i/2 + 1;

j = j-- + ++ j;

(j -= i++), (j+=2);

  1. int j = 4, i=2;

j -= i/2 + 1;

j = j-- + ++ j;

(j -= i++), (j+=2);

  1. int j = 1, i=2;

j += i++ - 2 + 1;

j = j-- / 2 + ++ j;

j -= i++, j++;

  1. int j = -4, i=2;

j *= i + 1;

j = j-- + ++ j;

i --;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]