Презентация, доклад по МДК.01.01. Системное программирование на тему Отладка программы. Принципы и виды отладок

Содержание

Вопросы для повторения: - Какая клавиша и кнопка позволяет откомпилировать проект (на наличие синтаксических ошибок). - Где отображаются ошибки, обнаруженные в процессе компиляции программы?

Слайд 1Отладка программы.
Принципы и виды отладок

Отладка программы.Принципы и виды отладок

Слайд 2Вопросы для повторения:
- Какая клавиша и кнопка позволяет откомпилировать проект

(на наличие синтаксических ошибок).
- Где отображаются ошибки, обнаруженные в процессе компиляции программы?
Вопросы для повторения: - Какая клавиша и кнопка позволяет откомпилировать проект (на наличие синтаксических ошибок). - Где

Слайд 3Выполнение отладки:
1) Поставить курсор на нужную строку кода – нажать

<Отладка> - <Выполнить до курсора>
После этого программа выполняется до той строки, где курсор и строка выделяется синим цветом.
Далее можно пошагово выполнять программу. Для этого надо нажимать "Следующий шаг"
Можно нажать "Продолжить выполнение", тогда программа выполнится полностью...
Можно посмотреть ассемблерный код в процессе остановки программы. Для этого выполнить до курсора, потом <Отладка> - <Показать окно CPU>...
В Dev C++ довольно слабый Отладчик. Можно скачать OllyDbg и настроить Dev C++ так, чтобы предпоследний можно было из этой среды запустить.
Выполнение отладки: 1) Поставить курсор на нужную строку кода – нажать - После этого программа выполняется до

Слайд 5Написанная (вечером?) большая программа всегда содержит ошибки.

Написанная (вечером?) большая программа всегда содержит ошибки.

Слайд 6Отладка (debugging)
Написав определенную программу, вы должны найти и удалить ошибки. Этот

процесс обычно называют отладкой (debugging), а ошибки — жучками (bugs).
Отладка (debugging)Написав определенную программу, вы должны найти и удалить ошибки. Этот процесс обычно называют отладкой (debugging), а

Слайд 7Иногда говорят, что термин «жучок» возник в те времена, когда аппаратное

обеспечение выходило из строя из-за насекомых, случайно заблудившихся среди электронных ламп и реле, заполнявших комнаты. Иногда считают, что этот термин изобрел Грейс Мюррей Хоппер, создатель языка программирования COBOL.

Отладка (debugging)

Иногда говорят, что термин «жучок» возник в те времена, когда аппаратное обеспечение выходило из строя из-за насекомых,

Слайд 81. Компилируем программу.
2. Редактируем связи.
3. Выполняем программу.

Отладка выглядит примерно

так:
1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу.Отладка выглядит примерно так:

Слайд 91. Компилируем программу.
2. Редактируем связи.
3. Выполняем программу.
Обычно эта последовательность

операций выполняется снова и снова: для действительно крупных программ этот процесс повторяется сотни и тысячи раз год за годом

Отладка выглядит примерно так:

1. Компилируем программу. 2. Редактируем связи. 3. Выполняем программу.Обычно эта последовательность операций выполняется снова и снова: для

Слайд 10Как понять, что программа действительно работает правильно?
Основной вопрос отладки звучит так:


Как понять, что программа действительно работает правильно?Основной вопрос отладки звучит так:

Слайд 11Программировать надо так, чтобы жучкам негде было укрыться. Главная цель –

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

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

Когда написано уже много строк, уже слишком поздно пытаться упростить отладку.
2) Решите, как сообщать об ошибках. Можно использовать функцию Error() и перехватывать исключение в функции main().

Практические советы по отладке:

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

Слайд 133) Старайтесь, чтобы программу было легко читать:
а) хорошо комментируйте свою программу

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

Практические советы по отладке:

3) Старайтесь, чтобы программу было легко читать:а) хорошо комментируйте свою программу (коротко указать название программы, цель программы,

Слайд 14б) Используйте осмысленные имена (не означает, что длинные);
в) используйте логичную схему

кода;
г) разбивайте программу на небольшие фрагменты, каждый из которых выражает определенную логическую операцию (старайтесь, чтобы функция не превышала 1-2 страниц);

Практические советы по отладке:

б) Используйте осмысленные имена (не означает, что длинные);в) используйте логичную схему кода;г) разбивайте программу на небольшие фрагменты,

Слайд 15д) избегайте сложных выражений (вложенных циклов, вложенных инструкций if, сложных условий

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

Практические советы по отладке:

д) избегайте сложных выражений (вложенных циклов, вложенных инструкций if, сложных условий и т.д.) Иногда они необходимы, но

Слайд 16cout

ли кавычка строки литералов?

наиболее распространенные ошибки компиляции:

cout

Слайд 17cout

Закрыта ли кавычка отдельного литерала?

наиболее распространенные ошибки компиляции:

cout

Слайд 18int f (int a) { if (a>0) { /* что-то делаем */ else

{ /* делаем что-то другое */ } } /Ой!
3. Закрыта ли фигурная скобка блока?

наиболее распространенные ошибки компиляции:

int f (int a) {  if (a>0) { /* что-то делаем */ else { /* делаем

Слайд 194. Каждое ли имя объявлено?
наиболее распространенные ошибки компиляции:

4. Каждое ли имя объявлено?наиболее распространенные ошибки компиляции:

Слайд 205. Включены ли все необходимые заголовочные файлы (например, #include "std_lib_facilities. h")?
наиболее

распространенные ошибки компиляции:
5. Включены ли все необходимые заголовочные файлы (например, #include

Слайд 216. Объявлено ли каждое имя до его использования?
наиболее распространенные ошибки компиляции:

6. Объявлено ли каждое имя до его использования?наиболее распространенные ошибки компиляции:

Слайд 22int count; /*...*/ ++Count; // Ой! char ch; /*...*/ Cin>>c; // Ой-ой!
7.

Правильно ли набраны все имена?

наиболее распространенные ошибки компиляции:

int count; /*...*/ ++Count; // Ой! char ch; /*...*/ Cin>>c; // Ой-ой!7. Правильно ли набраны все имена?наиболее

Слайд 23х = sqrt(y)+2 // Ой! z = х+3;
8. Поставлено ли двоеточие после

каждой инструкции?

наиболее распространенные ошибки компиляции:

х = sqrt(y)+2 // Ой! z = х+3;8. Поставлено ли двоеточие после каждой инструкции?наиболее распространенные ошибки компиляции:

Слайд 24После того как программа скомпилирована, а ее связи отредактированы, наступает самый

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

Слайд 25Обычная проблема с консолью Windows заключается в том, что она исчезает,

не дав вам шанса увидеть, что было выведено на экран (если что-то все-таки было выведено). Одно из решений этой проблемы — вызвать функцию keep_window_open () из заголовочного файла std_lib_facilities.h в конце функции main О.
Обычная проблема с консолью Windows заключается в том, что она исчезает, не дав вам шанса увидеть, что

Слайд 26for (int i = 0; i

for (int i=0; 09. Часто, когда программист не видит проблемы, причина заключается в том, что вы видите не действительное, а желаемое.

наиболее распространенные ошибки компиляции:

for (int i = 0; i

Слайд 27Вставить отладочный код (дополнительные инструкции вывода):
int my_fct(int a, double d)
{
int

res = 0;
cerr << "my_fct(" << a << "," << d << ") \n"; // вывод промежуточных значений
// . . . какой-то код . . .
cerr << "my_fct() возвращает “ << res << ‘\n’;
return res;
}

наиболее распространенные ошибки компиляции:

Вставить отладочный код (дополнительные инструкции вывода):int my_fct(int a, double d){ int res = 0; cerr

Слайд 28Вставьте инструкции для проверки инвариантов (т.е. условий, которые всегда должны выполняться)

в подозрительные разделы.
int my_complicated_f unction (int a, int b, int c)
// Аргументы являются положительными и а < b < с
{
if (!(0error ("Неверные аргументы функции mcf ") ;
// . . .
}

наиболее распространенные ошибки компиляции:


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

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

Слайд 30Следующая программа вводит температуру по шкале Цельсия и преобразует ее в

шкалу Кельвина. Этот код содержит много ошибок. 1) Найдите ошибки, перечислите их и исправьте программу.
Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шкалу Кельвина. Этот код содержит много

Слайд 31double сtok(double с) // преобразует шкалу Цельсия в шкалу Кельвина
{


int k = с + 273.15;
return int
}
int main ()
{
double с = 0; // объявляем переменную для ввода
cin >> d; // вводим температуру в переменную ввода
double k = ctok("c"); // преобразуем температуру
Cout << k << endl ; // выводим температуру на печать
}
double сtok(double с) // преобразует шкалу Цельсия в шкалу Кельвина { int k = с + 273.15;

Слайд 322) Самой низкой температурой является абсолютный нуль, т.е. -273,15°С, или 0

К. Даже после исправления приведенная выше программа выводит неверные результаты для температуры ниже абсолютного нуля. Поместите в функцию main () проверку, которая выводит сообщение об ошибке, если температура ниже -273,15°С.
2) Самой низкой температурой является абсолютный нуль, т.е. -273,15°С, или 0 К. Даже после исправления приведенная выше

Слайд 333) Повторите упр. 2, но на этот раз ошибку обработайте в

функции ctok ().
3) Повторите упр. 2, но на этот раз ошибку обработайте в функции ctok ().

Слайд 34Как определить, когда следует остановить отладку? Ясно, что отладка должна идти

до тех пор, пока не будут выявлены все ошибки, — или нам так покажется.
А как узнать, что мы нашли последнюю ошибку? Мы не знаем.
Последняя ошибка — это шутка программистов. Такой ошибки не существует. В большой программе никогда невозможно найти последнюю ошибку.
Как определить, когда следует остановить отладку? Ясно, что отладка должна идти до тех пор, пока не будут

Что такое shareslide.ru?

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


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть