Linux программирование в примерах
Шрифт:
6. Используя только что написанную функцию
7. Обработка тайм-аута в
8. Мы заметили, что
9. Нарисуйте дерево, как показано в выводе
10. Исследуйте файл
Для начала используйте программу
Далее, напишите две программы. Каждая должна читать новый список и сохранять каждое прочитанное слово в дереве и массиве соответственно. Вторая программа должна использовать для сортировки массива
Используйте вывод
11. Повторно запустите обе программы, использовав оригинальный отсортированный словарный файл, и посмотрите, как изменятся временные результаты (если они вообще изменятся).
Часть 3
Отладка и заключительный проект
Глава 15
Отладка
Имеется множество правил, начиная с логики программы и расположения данных, через организацию и расположение кода и кончая реализацией, которые могут минимизировать ошибки и проблемы. Мы рекомендуем вам изучить их; найдите хорошие книги по проектированию и дизайну программного обеспечения и реализуйте содержащиеся там советы на практике! Каждая программа, размером превышающая несколько сот строк кода, должна быть тщательно продумана и спроектирована, а не обтяпана, пока не начнет работать.
Однако, поскольку программисты люди, ошибки программирования неизбежны. Отладка является процессом обнаружения и устранения ошибок в программах. Даже хорошо спроектированные и хорошо реализованные программы иногда не работают; когда что-то идет не так и вы не можете выяснить, почему, хорошей мыслью является нацелить на код отладчик и понаблюдать за появлением ошибки.
Данная глава охватывает ряд тем, начиная с общих методик и советов по отладке (компилирование для отладки и элементарное использование GDB, отладчика GNU), переходя к ряду методик для использования при разработке
Большая часть наших советов основана на нашем долгосрочном опыте участия в качестве добровольца в проекте GNU по поддержке
15.1. Сначала главное
Когда программа ведет себя неправильно, вы можете быть в затруднении, что делать сначала. Часто странное поведение возникает из-за неправильного использования памяти — использования неинициализированных значений, чтения или записи за пределами динамической памяти и т.д. Поэтому вы можете быстрее получить результаты, попробовав средства отладки памяти до того, как заведете отладчик.
Довод заключается в том, что утилиты памяти могут указать вам непосредственно на вызывающую сбой строку кода, тогда как использование отладчика больше напоминает миссию «найти и уничтожить», в которой вам нужно сначала изолировать проблему, а затем исправить ее. Убедившись, что дело не в проблемах памяти, можно переходить к использованию отладчика.
Поскольку отладчик является более универсальным средством, мы рассмотрим его вначале. Далее в главе мы обсудим ряд инструментов для отладки памяти.
15.2. Компиляция для отладки
Для использования отладчика исходного кода, отлаживаемый исполняемый файл должен быть откомпилирован с опцией компилятора
На многих системах Unix опция компилятора
GCC, GNU Compiler Collection (коллекция компиляторов GNU), на самом деле допускает совместное использование
Моя. По праву истинности
1. Игры сильнейших
Любовные романы:
любовно-фантастические романы
рейтинг книги
Камень
1. Камень
Фантастика:
боевая фантастика
рейтинг книги
Цеховик. Книга 1. Отрицание
1. Цеховик
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Семь дней Создателя
Фантастика:
фэнтези
рейтинг книги
Большой марш (сборник)
Проза:
современная проза
рейтинг книги
Всеобщая история искусств в шести томах. Том 2. Книга 2 (с иллюстрациями)
Научно-образовательная:
история
культурология
рейтинг книги
Божественные исцеляющие омолаживающие настрои
Научно-образовательная:
психология
медицина
рейтинг книги