Английская Википедия:Debug (command)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Шаблон:Use dmy dates Шаблон:Use list-defined references Шаблон:Infobox software The line-oriented debugger DEBUG.EXE is an external command in operating systems such as DOS, OS/2 and Windows (only in 16-bit/32-bit versions[1]).

DEBUG can act as an assembler, disassembler, or hex dump program allowing users to interactively examine memory contents (in assembly language, hexadecimal or ASCII), make changes, and selectively execute COM, EXE and other file types. It also has several subcommands which are used to access specific disk sectors, I/O ports and memory addresses.

Overview

Файл:IBM PC DOS 1.0 screenshot.png
DEBUG.COM (among other commands) in IBM PC DOS 1.0.
Файл:Microsoft Windows 95 Version 4.00.1111 debug command 492x259.png
The Microsoft Windows 95 DEBUG.EXE command

Traditionally, all computers and operating systems have included a maintenance function, used to determine whether a program is working correctly.Шаблон:Citation needed DEBUG was originally written by Tim Paterson to serve this purpose in 86-DOS. When Paterson began working for Microsoft in the early 1980s he brought the program with him. DEBUG was part of Шаблон:Nowrap and has been included in MS-DOS/PC DOS and certain versions of Microsoft Windows. Originally named DEBUG.COM, the executable was renamed into DEBUG.EXE with MS-DOS 3.2.[2]

Windows XP and later versions included DEBUG for the MS-DOS subsystem to maintain MS-DOS compatibility. The 16-bit DOS commands are not available on 64-bit editions of Windows.[3]

The MS-DOS/PC DOS DEBUG has several limitations:

Enhanced DEBUG packages include the DEBUG command in Novell DOS 7, OpenDOS 7.01 and DR-DOS 7.02 and higher, a reimplementation of Digital Research's former Symbolic Instruction Debugger SID/SID86,[4] which came with former versions of DR DOS.[5][6][7] It is fully compatible with the DEBUG command line syntax of MS-DOS/PC DOS, but offers many enhancements, including supporting 16-bit and 32-bit opcodes up to the Pentium, an extended mode (/X) with dozens of additional commands and sub-modes, a much enhanced command line syntax with user-definable macros and symbolic debugging facilities with named registers, loaded symbol tables, mathematical operations and base conversions, as well as a commenting disassembler.[8][7] Some versions also utilized DPMS to function as a "stealth mode" protected-mode debugger.[9]

The FreeDOS version of DEBUG was developed by Paul Vojta and is licensed under the MIT License.[10]

A 32-bit clone "DEBUGX" version supporting 32-bit DPMI programs exists as well.[11] Andreas "Japheth" Grech, the author of the HX DOS extender, developed enhanced DEBUG versions 0.98 to 1.25, and former PC DOS developer Vernon C. Brooks added versions 1.26 to 1.32.[12]

Syntax

DEBUG [[drive:][path] filename [parameters]]

When DEBUG is started without any parameters the DEBUG prompt, a "-" appears. The user can then enter one of several one or two-letter subcommands, including "A" to enter the assembler mode, "D" to perform a hexadecimal dump, "T" to trace and "U" to unassemble (disassemble) a program in memory.[13] DEBUG can also be used as a "DEBUG script" interpreter using the following syntax.

DEBUG < filename

A script file may contain DEBUG subcommands and assembly language instructions.[14] This method can be used to create or edit binary files from batch files.[2]

Using for non-debugging purposes

The DEBUG utility is useful for editing binary files in an environment where only DOS is installed without anything else. It can also be used to edit disk sectors, which is one method of removing boot-sector viruses.

Availability

Although technical documentation for the DEBUG command was removed with the release of MS-DOS 3.3, the command was retained in the standard distribution, unlike what was done with EXE2BIN.[15]

Other Operating Systems

The operating systems Intel ISIS-II[16] and iRMX 86,[17] DEC TOPS-10[18] and TOPS-20,[19] THEOS/OASIS,[20] Zilog Z80-RIO,[21] Stratus OpenVOS,[22] PC-MOS,[23] and AROS[24] also provide a DEBUG command.

See also

References

Шаблон:Reflist

External links

Шаблон:Wikibooks

Шаблон:Windows commands

  1. Ошибка цитирования Неверный тег <ref>; для сносок MASM for x64 не указан текст
  2. 2,0 2,1 Ошибка цитирования Неверный тег <ref>; для сносок Sedory не указан текст
  3. Ошибка цитирования Неверный тег <ref>; для сносок MS_subsystem не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок DR_1982_SID86 не указан текст
  5. Ошибка цитирования Неверный тег <ref>; для сносок Born_1993_DOS6 не указан текст
  6. Ошибка цитирования Неверный тег <ref>; для сносок Paul_1997_DRDOSTIP не указан текст
  7. 7,0 7,1 Ошибка цитирования Неверный тег <ref>; для сносок Paul_2002_SID86 не указан текст
  8. Ошибка цитирования Неверный тег <ref>; для сносок Paul_1997_NWDOSTIP не указан текст
  9. Ошибка цитирования Неверный тег <ref>; для сносок Paul_2001_NWDOSTIP не указан текст
  10. Ошибка цитирования Неверный тег <ref>; для сносок FreeDOS не указан текст
  11. Ошибка цитирования Неверный тег <ref>; для сносок Vojta не указан текст
  12. Ошибка цитирования Неверный тег <ref>; для сносок Brooks_2014 не указан текст
  13. Ошибка цитирования Неверный тег <ref>; для сносок TechNet не указан текст
  14. Ошибка цитирования Неверный тег <ref>; для сносок Using_Debug не указан текст
  15. Ошибка цитирования Неверный тег <ref>; для сносок Dror_1988 не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок ISIS не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок iRMX не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок TOPS-10 не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок CMDref не указан текст
  20. Ошибка цитирования Неверный тег <ref>; для сносок OASIS не указан текст
  21. Ошибка цитирования Неверный тег <ref>; для сносок Z80-RIO не указан текст
  22. Ошибка цитирования Неверный тег <ref>; для сносок VOS не указан текст
  23. Ошибка цитирования Неверный тег <ref>; для сносок PC-MOS не указан текст
  24. Ошибка цитирования Неверный тег <ref>; для сносок AROS не указан текст