Назначение отладчика, такого как DDD, -- позволить вам увидеть, что
происходит "внутри" другой программы в процессе ее работы, -- или
узнать, что делала другая программа в момент краха.
DDD может выполнять четыре основные операции (плюс другие вещи для
поддержки этих четырех), чтобы помочь вам поймать ошибки в действии:
Запустить вашу программу, определив все, что может повлиять на ее
поведение.
Заставить вашу программу остановиться при указанном условии.
Выяснить, что произошло, когда ваша программа остановилась.
Изменить что-то в вашей программе, чтобы вы могли поэкспериментировать
над исправлением результатов ошибки и перейти к исследованию следующей.
Говоря технически, DDD является интерфейсом к отладчику, управляемому
из командной строки (он называется подчиненным отладчиком,
поскольку работает на уровень ниже DDD). DDD поддерживает
следующие подчиненные отладчики:
Для отладки исполняемых двоичных файлов вы можете использовать
DDD с GDB, DBX, Ladebug или XDB.
GDB, отладчик GNU, -- рекомендуемый подчиненный отладчик
для DDD. GDB поддерживает родные исполняемые файлы, написанные
изначально на Си, Си++, Модуле-2, Модуле-3, Паскале, Аде, Фортране, Java
и Chill (см. раздел `Использование GDB с разными языками' в Отладка в GDB,
для получения информации о поддержки языков в GDB.)
В качестве альтернативы GDB вы можете использовать DDD с
отладчиком DBX, который есть на многих системах UNIX.
Большинство реализаций DBX предоставляют меньше возможностей, чем
GDB, а некоторые наиболее продвинутые средства DBX могут не
поддерживаться в DDD. Однако, применение DBX может оказаться
полезным, если GDB не понимает или не поддерживает полностью
генерируемую вашим компилятором отладочную информацию.
В качестве альтернативы GDB и DBX вы можете использовать DDD с
отладчиком Ladebug, который устанавливается на системах DEC.
Ladebug предоставляет меньше возможностей, чем
GDB, а некоторые наиболее продвинутые средства Ladebug могут не
поддерживаться в DDD. Однако, применение Ladebug может оказаться
полезным, если GDB или DBX не понимают или не поддерживают полностью
генерируемую вашим компилятором отладочную информацию.(1)
Как еще одну альтернативу GDB вы можете применить с DDD отладчик
XDB, существующий на системах @acronym{HP-UX}.(2)
Для отладки байт-кодовых Java-программ вы можете использовать
DDD с JDB, отладчиком Java, который поставляется с
@acronym{JDK} 1.1 и более поздними версиями.
Для отладки программ на языке Python вы можете использовать
DDD с PYDB, отладчиком для Python.
Для отладки программ на Perl вы можете использовать DDD с
отладчиком Perl из Perl 5.003 и более поздних версий.
Данное руководство поставляется в нескольких форматах:
Формат Info используется для просмотра на текстовых устройствах;
в нем нет рисунков. У вас, вероятно, установлена локальная копия,
которую вы можете просматривать из Emacs, с помощью отдельной программы
info или из DDD через `Help => DDD Manual'.
Дистрибутив исходных текстов DDD,
`ddd-3.2.1.tar.gz', включает это руководство в
виде уже отформатированных Info-файлов; вы также можете взять их на
WWW-странице DDD.
Формат PostScript используется для печати на бумаге; в нем кроме
того есть рисунки.
Дистрибутив исходных текстов DDD,
`ddd-3.2.1.tar.gz', включает это руководство в
виде уже отформатированного PostScript-файла; вы также можете взять их
на WWW-странице DDD.
Формат PDF применяется для печати на бумаге и для интерактивного
просмотра; в нем также есть рисунки.
Дистрибутив исходных текстов DDD,
`ddd-3.2.1.tar.gz', включает это руководство в
виде уже отформатированного PDF-файла; вы также можете взять их на
WWW-странице DDD.
Формат HTML используется для просмотра на графических
устройствах; в нем есть несколько рисунков. Вы можете просматривать его
с помощью броузера HTML, обычно с локальной копии.
Отформатированная HTML-версия этого руководства поставляется в отдельном
пакете DDD, `ddd-3.2.1-html-manual.tar.gz'; вы
можете просмотреть и загрузить его через
WWW-странице DDD.
Само руководство написано в формате Texinfo; его исходный файл
`ddd.texi' находится в дистрибутиве исходников DDD
`ddd-3.2.1.tar.gz'.
Рисунки поставляются в отдельном пакете
`ddd-3.2.1-pics.tar.gz'; он понадобится вам,
только если вы захотите сами создать PostScript-, HTML- или PDF-версии.
DDD распространяется свободно; это означает, что каждый волен
его использовать и повторно распространять на свободной основе. DDD
не является общественным достоянием; он защищен законами об авторских
правах, и на его распространение накладываются некоторые ограничения, но
ограничения эти написаны так, чтобы позволить все, что может захотеть
хороший благонамеренный гражданин. Что не разрешается, так это пытаться
мешать другим и далее совместно пользоваться любой версией этих
программ, которые они могли бы от вас получить. Точные условия
находятся в Универсальной Общественной Лицензии GNU, которая
поставляется вместе с DDD; См. раздел G. Универсальная Общественная Лицензия GNU, для получения
подробностей.
Простейший способ получить копию DDD -- взять ее у кого-нибудь, у
кого он уже есть. Вам не нужно спрашивать на это разрешения или
говорить об этом кому-то; просто скопируйте.
Если у вас есть доступ к Интернету, вы можете получить последнюю версию
DDD с анонимного FTP-сервера `ftp.gnu.org' в каталоге
`/gnu/ddd'. В нем должны лежать следующие файлы:
``ddd-version.tar.gz''
Дистрибутив исходных текстов DDD. Его должно быть достаточно.
``ddd-version-html-manual.tar.gz''
Руководство по DDD в формате HTML. Оно понадобится вам только в том
случае, если вы хотите установить локальную копию руководства в формате
HTML.
``ddd-version-pics.tar.gz''
Рисунки из руководства по DDD. Они нужны вам, только если вы хотите
заново переформатировать руководство по DDD.
DDD также можно найти на многих других архивных сайтах по всему миру;
последний список известных сайтов смотрите в файле `ANNOUNCE' в
дистрибутиве DDD.
Изначально авторами DDD были Доротеа Люткехаус и Андреас Зеллер. В
его разрабутку внесли вклад и многие другие. Практически все они
упомянуты в файлах `ChangeLog' и `THANKS' из дистрибутива
DDD.
История DDD -- это история переработки кода. Самые старые части
были написаны в 1990-ом году, когда Андреас Зеллер придумал
VSL, визуальный язык структур для отображения структур данных и
программ. Интерпретатор VSL и библиотека Box стали частью дипломной
работы Андреаса: графического синтаксического редактора, основанного на
Генераторе Программных Систем @acronym{PSG}.
В 1992-ом году библиотеки VSL и Box были использованы для проекта
@acronym{NORA}. Для этого проекта, экспериментального инструмента для
разработки программ, основанного на логическом выводе,
Андреас написал редактор графов (базируясь на библиотеках VSL и Box)
и средства для обмена знаниями между процессами. Используя эти
инструменты, Доротеа Люткехаус (теперь Доротеа Крабилл)
реализовала в 1994-ом году DDD как свою дипломную работу.
В первом DDD не было окна с исходным текстом; Доротеа добавила это
зимой 1994--1995. В первом квартале 1995-ого Андреас наконец закончил
DDD, добавив окна команд и выполнения, расширения для DBX и
удаленной отладки, а также поддержку конфигурирования для нескольких
архитектур. С тех пор Андреас сопровождал и расширял DDD, опираясь
на комментарии и предложения от нескольких пользователей DDD со всего
мира. Подробности смотрите в комментариях к исходному коду DDD.
Основные связанные с DDD события:
апрель 1995
DDD 0.9: Первый бета-выпуск DDD.
май 1995
DDD 1.0: Первый публичный выпуск DDD.
декабрь 1995
DDD 1.4: Отладка на уровне машинных кодов, глифы, интеграция с Emacs.
октябрь 1996
DDD 2.0: Цветной вывод, поддержка XDB, общая поддержка DBX.
май 1997
DDD 2.1: Обнаружение псевдонимов, подсказки для кнопок, отображение статуса.
ноябрь 1997
DDD 2.2: Сеансы, быстрое создание отображений.
июнь 1998
DDD 3.0: Линейка инструментов с пиктограммами, поддержка Java и JDB.
декабрь 1998
DDD 3.1: Построение графиков, поддержка Perl и Python, Отмена/Возврат.
январь 2000
DDD 3.2: Новое руководство, поддержка Readline, поддержка Ladebug.