El depurador orientado a líneas DEBUG.EXEes un comando externo en MS-DOS y sistemas operativos compatibles, OS/2 y versiones de 16 y 32 bits de Windows . [ 1 ]
DEBUG puede funcionar como ensamblador , desensamblador o programa de volcado hexadecimal, lo que permite a los usuarios examinar interactivamente el contenido de la memoria (en lenguaje ensamblador , hexadecimal o ASCII ), realizar cambios y ejecutar selectivamente archivos COM , EXE y de otros tipos. También cuenta con varios subcomandos que se utilizan para acceder a sectores de disco , puertos de E/S y direcciones de memoria específicos .
Descripción general

DEBUG.COM(entre otros comandos) en IBM PC DOS 1.0.
DEBUG.EXETradicionalmente, todos los ordenadores y sistemas operativos han incluido una función de mantenimiento, utilizada para determinar si un programa funciona correctamente. DEBUG fue escrito originalmente por Tim Paterson para cumplir este propósito en 86-DOS . Cuando Paterson comenzó a trabajar para Microsoft a principios de la década de 1980, llevó consigo el programa. DEBUG formaba parte de DOS 1.00 y se ha incluido en MS-DOS / PC DOS y en ciertas versiones de Microsoft Windows . Originalmente llamado , el ejecutable fue renombrado a con MS-DOS 3.2. [ 2 ]DEBUG.COMDEBUG.EXE
Windows XP y versiones posteriores incluyeron DEBUGel subsistema MS-DOS para mantener la compatibilidad con MS-DOS. Los comandos DOS de 16 bits no están disponibles en las ediciones de 64 bits de Windows. [ 3 ]
La herramienta de depuración MS-DOS/PC DOS tiene varias limitaciones:
- En los modos de ensamblaje/desensamblaje, solo admite códigos de operación 8086 .
- Solo puede acceder a registros de 16 bits y no a registros extendidos de 32 bits.
- Cuando se utiliza el subcomando "N" para nombrar archivos, el nombre del archivo se almacena desde el desplazamiento DS :5D hasta DS:67 (el área del bloque de control de archivos de prefijo de segmento de programa ), lo que significa que el programa solo puede guardar archivos en formato de nombre de archivo FAT 8.3 .
Los paquetes DEBUG mejorados incluyen el comando DEBUG en Novell DOS 7 , OpenDOS 7.01 y DR-DOS 7.02 y superior, una reimplementación del antiguo depurador de instrucciones simbólicas SID/SID86 de Digital Research , [ 4 ] que venía con versiones anteriores de DR DOS . [ 5 ] [ 6 ] [ 7 ] Es totalmente compatible con la sintaxis de línea de comandos DEBUG de MS-DOS/PC DOS, pero ofrece muchas mejoras, incluyendo soporte para códigos de operación de 16 bits y 32 bits hasta el Pentium , un modo extendido (/X) con docenas de comandos y submodos adicionales, una sintaxis de línea de comandos mucho mejorada con macros definibles por el usuario y facilidades de depuración simbólica con registros nombrados, tablas de símbolos cargadas , operaciones matemáticas y conversiones de base , así como un desensamblador de comentarios . [ 8 ] [ 7 ] Algunas versiones también utilizaban DPMS para funcionar como un depurador de modo protegido en "modo sigiloso". [ 9 ]
La versión de DEBUG para FreeDOS fue desarrollada por Paul Vojta y está licenciada bajo la Licencia MIT . [ 10 ]
También existe una versión clonada de 32 bits "DEBUGX" que admite programas DPMI de 32 bits . [ 11 ] Andreas "Japheth" Grech, autor del extensor HX DOS , desarrolló versiones mejoradas de DEBUG de la 0.98 a la 1.25, y el antiguo desarrollador de PC DOS, Vernon C. Brooks, añadió las versiones 1.26 a la 1.32. [ 12 ]
Sintaxis
DEPURACIÓN [[unidad:][ruta] nombre de archivo [parámetros]]
Cuando se inicia DEBUG sin ningún parámetro, aparece el indicador DEBUG, un "-". El usuario puede entonces ingresar uno de varios subcomandos de una o dos letras, incluyendo "A" para ingresar al modo ensamblador, "D" para realizar un volcado hexadecimal , "T" para rastrear y "U" para desensamblar un programa en memoria. [ 13 ] DEBUG también se puede usar como un intérprete de "script DEBUG" usando la siguiente sintaxis.
DEPURACIÓN < nombre de archivo>Un archivo de script puede contener subcomandos DEBUG e instrucciones en lenguaje ensamblador. [ 14 ] Este método se puede utilizar para crear o editar archivos binarios a partir de archivos por lotes . [ 2 ]
Subcomandos de depuración
A continuación se muestra una lista de los comandos DEBUG disponibles desde DEBUG.EXE en MS-DOS 6.22 a través del ?comando.
ensamblar A [dirección] comparar la dirección del rango C volcar D [rango] Introduzca la dirección E [lista] Lista de rangos F ir G [=dirección] [direcciones] valor hexadecimal H1 valor2 puerto de entrada I Carga L [dirección] [unidad] [primer sector] [número] mover la dirección del rango M nombre N [nombre de ruta] [lista de argumentos] byte del puerto O de salida Proceda P [=dirección] [número] salir Q registro R [registro] lista de rangos S de búsqueda traza T [=dirección] [valor] desensamblar U [rango] escribir W [dirección] [unidad] [primer sector] [número] asignar memoria expandida XA [#páginas] desasignar memoria expandida XD [identificador] Mapa de páginas de memoria expandida XM [Lpage] [Ppage] [handle] mostrar estado de memoria expandida XS
El comando R muestra el estado y los valores actuales del registro.
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2A63 ES=2A63 SS=2A63 CS=2A63 IP=0100 NV UP EI PL NZ NA PO NC 2A63:0100 0F DB 0F
Mientras D vuelca la memoria actual mostrando valores hexadecimales y ASCII.
2A63:0100 0F 00 B9 8A FF F3 AE 47-61 03 1F 8B C3 48 12 B1 .......Ga....H.. 2A63:0110 04 8B C6 F7 0A 0A D0 D3-48 DA 2B D0 34 00 52 2A ........H.+.4.R\* 2A63:0120 00 DB D2 D3 E0 03 F0 8E-DA 8B C7 16 C2 B6 01 16 ................ 2A63:0130 C0 16 F8 8E C2 AC 8A D0-00 00 4E AD 8B C8 46 8A ..........N...F. 2A63:0140 C2 24 FE 3C B0 75 05 AC-F3 AA A0 0A EB 06 3C B2 .$.<.u..........<. 2A63:0150 75 6D 6D 13 A8 01 50 14-74 B1 BE 32 01 8D 8B 1E umm...Pt.2.... 2A63:0160 8E FC 12 A8 33 D2 29 E3-13 8B C2 03 C3 69 02 00 ....3.)......i.. 2A63:0170 0B F8 83 FF FF 74 11 26-01 1D E2 F3 81 00 94 FA .....t.&........
Y Unassemble muestra el intento de desensamblaje de la misma memoria .
2A63:0100 0F DB 0F 2A63:0101 00B98AFF AÑADIR [BX+DI+FF8A],BH 2A63:0105 F3 REPZ 2A63:0106 AE SCASB 2A63:0107 47 INC DI 2A63:0108 61 DB 61 2A63:0109 031F AÑADIR BX,[BX] 2A63:010B 8BC3 MOV AX,BX 2A63:010D 48 DEC AX 2A63:010E 12B1048B ADC DH,[BX+DI+8B04] 2A63:0112 C6F70A MOV BH,0A 2A63:0115 0AD0 O DL,AL 2A63:0117 D348DA PUNTERÍA DE PALABRA ROR [BX+SI-26],CL 2A63:011A 2BD0 SUB DX,AX 2A63:011C 3400 XOR AL,00 2A63:011E 52 PUSH DX 2A63:011F 2A00 SUB AL,[BX+SI]
Uso para fines distintos a la depuración
La utilidad DEBUG es útil para editar archivos binarios en un entorno donde solo está instalado DOS, sin ningún otro sistema operativo. También se puede usar para editar sectores de disco, lo cual es un método para eliminar virus del sector de arranque.
Disponibilidad
Aunque la documentación técnica del comando DEBUG se eliminó con el lanzamiento de MS-DOS 3.3, el comando se mantuvo en la distribución estándar, a diferencia de lo que se hizo con EXE2BIN . [ 15 ]
Otros sistemas operativos
Los sistemas operativos Intel ISIS-II [ 16 ] e iRMX 86 , [ 17 ] DEC TOPS-10 [ 18 ] y TOPS-20 , [ 19 ] THEOS/OASIS , [ 20 ] Zilog Z80-RIO , [ 21 ] Stratus OpenVOS , [ 22 ] PC-MOS , [ 23 ] y AROS [ 24 ] también proporcionan un DEBUGcomando.
Véase también
- Lista de comandos de DOS
- DDT (comando CP/M) (Técnica de depuración dinámica)
- SID (Depurador de instrucciones simbólicas)
- SÍNDROME
- CodeView
- Depurador Turbo
- SoftICE
- DEPURACIÓN (etiqueta)
Referencias
- ↑ Según la Referencia del ensamblador de macros de Microsoft , el ensamblado en línea no es compatible con x64.
- 1 2 Sedory, Daniel B. "Una guía para DEBUG" . Recuperado el 29 de noviembre de 2014 .
- ↑ Comandos del subsistema MS-DOS
- ↑ Guía del usuario de SID-86 para CP/M-86 (2.ª ed.). Investigación digital . Agosto de 1982 [marzo de 1982]. SID86UG.WS4. Archivado del original el 20 de octubre de 2019. Consultado el 6 de febrero de 2020 . (Nota: Versión del manual transcrita por Emmanuel Roche con los comandos Q, SR y Z añadidos. Este manual es para la versión CP/M-86 , pero la versión DR DOS es similar).
- ↑ Nacido, Günter [en alemán] (1993). Sintonización de DOS 6 (en alemán) (1 ed.). Mercado y tecnología . ISBN 3-87791-495-0.(Nota: Incluye varias páginas sobre MS-DOS DEBUG.EXE, así como sobre el depurador de instrucciones simbólicas SID.EXE en DR DOS 5.0 / 6.0 ).
- ↑ Paul, Matthias R. (1997-05-24) [1991]. DRDOSTIP.TXT — Tips und Tricks für DR DOS 3.41 - 5.0 (en alemán) (47 ed.). Archivado del original el 2016-11-07 . Recuperado el 2016-11-07 .
{{cite book}}:|work=ignorado ( ayuda ) (NB. Contiene información sobre el depurador de instrucciones simbólicas (SID86.EXE en DR DOS 3.41 y SID.EXE en DR DOS 5.0/6.0), el predecesor de DR-DOS DEBUG.EXE.) - 1 2 Paul, Matthias R. (2002-01-09). "SID86" . Grupo de noticias : comp.os.cpm . Recuperado el 2018-04-08 .
[…] Dado que el DEBUG
de DR-DOS 7.03
todavía se basa en el antiguo SID86.EXE, sugiero ejecutar DEBUG 1.51 e ingresar al sistema de ayuda extendida con
?? desde el indicador de depuración. Esto le proporcionará ocho pantallas llenas de ayuda sobre sintaxis y características. Algunas de estas características también eran compatibles con versiones anteriores. […]
- ^ Pablo, Matías R. (30 de julio de 1997). "Kapitel II.5. Allgemeines: Undokumentierte Möglichkeiten von DEBUG" [ Características no documentadas de DEBUG ] . NWDOS-TIP : consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones . Versión 157 (en alemán) (3 ed.). Archivado desde el original el 10 de septiembre de 2017 . Consultado el 6 de septiembre de 2014 .
{{cite book}}:|work=ignorado ( ayuda ) (Nota: NWDOSTIP.TXT es una obra exhaustiva sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características y aspectos internos no documentados. Forma parte de la colección MPDOSTIP.ZIP del autor, aún más extensa, que se mantuvo hasta 2001 y se distribuyó en muchos sitios en aquel entonces. El enlace proporcionado apunta a una versión anterior del archivo NWDOSTIP.TXT convertida a HTML). - ^ Pablo, Matías R. (9 de abril de 2001). NWDOS-TIP : consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones . Lanzamiento 183 (en alemán) (3 ed.).
{{cite book}}:|work=ignorado ( ayuda ) - ↑ "Paquete de actualizaciones de FreeDOS 1.2 - depuración (FreeDOS Base)" . Ibiblio.org. 16 de febrero de 2021. Consultado el 8 de septiembre de 2022 .
- ↑ Vojta, Paul. "DEBUG README" . Archivado del original el 24 de agosto de 2007. Recuperado el 25 de junio de 2007 .
- ↑ Brooks, Vernon C. (2014-04-08). "Depuración mejorada para PC DOS y MS-DOS" . PC DOS Retro . Archivado del original el 21-02-2020 . Recuperado el 08-05-2014 .
- ↑ "Artículo de depuración de Microsoft TechNet" . Consultado el 23 de abril de 2008 .
- ↑ Irvine, Kip R. (2010). "Uso de la depuración". Lenguaje ensamblador para computadoras basadas en Intel (PDF) (6.ª ed.). Prentice Hall . ISBN 978-0-13602212-1. Consultado el 18 de marzo de 2014 .
- ↑ Dror, Asael (12 de enero de 1988). "Gracias, IBM". PC Magazine . pág. 366.
- ↑ Guía del usuario de ISIS II
- ↑ Introducción y manual de referencia del operador de iRMX 86 para la versión 6
- ↑ Manual de comandos del sistema operativo TOPS-10 (PDF) . Digital Equipment Corporation. Agosto de 1980. Archivado del original (PDF) el 9 de agosto de 2020. Consultado el 17 de febrero de 2019 .
- ↑ "Manual de comandos TOPS-20" (PDF) . Archivado del original (PDF) el 9 de agosto de 2020. Consultado el 18 de julio de 2018 .
- ↑ Manual del usuario de THEOS/OASIS
- ↑ "Manual del usuario del sistema operativo Z80-RIO" (PDF) . Archivado del original (PDF) el 28/01/2022 . Consultado el 04/05/2019 .
- ↑ "Manual de referencia de comandos de OpenVOS" (PDF) .
- ↑ Guía del usuario de PC-MOS
- ↑ "Sistema Operativo de Investigación AROS" . Archivado del original el 2 de julio de 2019. Consultado el 9 de agosto de 2025 .
Enlaces externos
- Depuración | Documentación de Microsoft
- Implementación de depuración de código abierto que viene con MS-DOS v2.0
- Comandos de Windows
- Ensambladores
- Depuradores
- Desmontadores
- Comandos externos de DOS
- Software gratuito de Microsoft
- Comandos de OS/2