Строково-ориентированный отладчик DEBUG.EXE
— это внешняя команда в операционных системах , таких как DOS , OS/2 и Windows (только в 16-битных/32-битных версиях [1] ).
DEBUG может выступать в качестве ассемблера , дизассемблера или программы шестнадцатеричного дампа , позволяя пользователям интерактивно изучать содержимое памяти (на языке ассемблера , шестнадцатеричном или ASCII ), вносить изменения и выборочно выполнять COM , EXE и другие типы файлов. Он также имеет несколько подкоманд, которые используются для доступа к определенным секторам диска , портам ввода-вывода и адресам памяти .
Традиционно все компьютеры и операционные системы включают функцию обслуживания, используемую для определения того, правильно ли работает программа. [ требуется цитата ] DEBUG изначально был написан Тимом Патерсоном для этой цели в 86-DOS . Когда Патерсон начал работать в Microsoft в начале 1980-х, он принес программу с собой. DEBUG был частью DOS 1.00 и был включен в MS-DOS / PC DOS и некоторые версии Microsoft Windows . Первоначально названный DEBUG.COM
, исполняемый файл был переименован в DEBUG.EXE
с MS-DOS 3.2. [2]
Windows XP и более поздние версии включены DEBUG
в подсистему MS-DOS для поддержания совместимости с MS-DOS. 16-битные команды DOS недоступны в 64-битных редакциях Windows. [3]
У MS-DOS/PC DOS DEBUG есть несколько ограничений:
Расширенные пакеты DEBUG включают команду DEBUG в Novell DOS 7 , OpenDOS 7.01 и DR-DOS 7.02 и выше, повторную реализацию бывшего отладчика символических инструкций SID/SID86 компании Digital Research , [4] который поставлялся с предыдущими версиями DR DOS . [5] [6] [7] Он полностью совместим с синтаксисом командной строки DEBUG MS-DOS/PC DOS, но предлагает множество улучшений, включая поддержку 16- и 32-битных кодов операций вплоть до Pentium , расширенный режим (/X) с десятками дополнительных команд и подрежимов, значительно улучшенный синтаксис командной строки с определяемыми пользователем макросами и символьными возможностями отладки с именованными регистрами, загруженными таблицами символов , математическими операциями и базовыми преобразованиями , а также комментирующий дизассемблер . [8] [7] Некоторые версии также использовали DPMS для работы в качестве отладчика защищенного режима «скрытого режима». [9]
Версия DEBUG для FreeDOS была разработана Полом Войтой и лицензирована в соответствии с лицензией MIT . [10]
Также существует 32-битный клон "DEBUGX", поддерживающий 32-битные программы DPMI . [11] Андреас "Japheth" Грех, автор расширителя HX DOS , разработал улучшенные версии DEBUG с 0.98 по 1.25, а бывший разработчик PC DOS Вернон С. Брукс добавил версии с 1.26 по 1.32. [12]
DEBUG [[диск:][путь] имя файла [параметры]]
При запуске DEBUG без параметров появляется приглашение DEBUG, "-". Затем пользователь может ввести одну из нескольких одно- или двухбуквенных подкоманд, включая "A" для входа в режим ассемблера, "D" для выполнения шестнадцатеричного дампа , "T" для трассировки и "U" для дезассемблирования (разборки) программы в памяти. [13] DEBUG также может использоваться как интерпретатор "DEBUG script", используя следующий синтаксис.
DEBUG < filename
Файл сценария может содержать подкоманды DEBUG и инструкции языка ассемблера. [14] Этот метод можно использовать для создания или редактирования двоичных файлов из пакетных файлов . [2]
Утилита DEBUG полезна для редактирования двоичных файлов в среде, где установлен только DOS без чего-либо еще. Ее также можно использовать для редактирования секторов диска, что является одним из методов удаления вирусов загрузочного сектора.
Хотя техническая документация по команде DEBUG была удалена с выпуском MS-DOS 3.3, команда была сохранена в стандартном дистрибутиве, в отличие от того, что было сделано с EXE2BIN . [15]
Операционные системы Intel ISIS -II [16] и iRMX 86 , [17] DEC TOPS-10 [18] и TOPS-20 , [19] THEOS/OASIS , [20] Zilog Z80-RIO , [21] Stratus OpenVOS , [22] PC-MOS , [23] и AROS [24] также предоставляют DEBUG
команду.
{{cite book}}
: |work=
игнорируется ( помощь ) (Примечание. Содержит некоторую информацию о отладчике символических инструкций (SID86.EXE в DR DOS 3.41 и SID.EXE в DR DOS 5.0/6.0), предшественнике DR-DOS DEBUG.EXE.)[…] Поскольку
DR-DOS 7.03
DEBUG все еще основан на старом SID86.EXE, я предлагаю запустить DEBUG 1.51 и войти в расширенную справочную систему с помощью ?? из приглашения отладки. Это даст вам восемь экранов, полных справки по синтаксису и функциям. Некоторые из этих функций также поддерживались более старыми выпусками. […]
{{cite book}}
: |work=
игнорируется ( помощь ) (Примечание. NWDOSTIP.TXT — это всеобъемлющая работа по Novell DOS 7 и OpenDOS 7.01 , включающая описание многих недокументированных функций и внутренних компонентов. Она является частью еще более обширной коллекции автора MPDOSTIP.ZIP, которая поддерживалась до 2001 года и распространялась на многих сайтах в то время. Приведенная ссылка указывает на более старую версию файла NWDOSTIP.TXT, преобразованную в HTML.){{cite book}}
: |work=
проигнорировано ( помощь )