FreeDOS help system (hhstndrd 1.0.8 es)[debug]

Comando: debug

DEBUG es un clon del comando DEBUG de MS-DOS. Algunas cosas menores no se implementaron. DEBUG no solo admite los registros 8086/8088 y 8087 y los conjuntos de instrucciones, sino también el registro de 32 bits y los conjuntos de instrucciones hasta la CPU PentiumPro; excepto las extensiones MMX. DEBUG es una herramienta DOS relativamente avanzada pero tiene muchos usos. Por ejemplo, se puede usar para: * encontrar errores en los programas, * crear programas a partir del código de ensamblador, * inspeccionar y editar archivos binarios.

Sintaxis:

DEBUG [[unidad:][ruta]nom_archivo [lista_arg]] [unidad:][ruta]nom_archivo Especifica el archivo que desea probar. No tiene que ser un ejecutable, podría ser un archivo binario o de texto. Como puede ser cualquier archivo, se debe especificar la extensión del archivo. lista_arg Especifica la información de línea de comandos requerida por el archivo que desea probar. Consulte ejecución del programa a continuación para obtener más información sobre la ejecución de programas ejecutables. Una vez que se inicia la depuración, se muestra el símbolo del sistema de depuración. Ingrese Q para salir de Debug y ? para mostrar la lista de comandos de depuración.

Opciones:

Q Salir ? Ayuda Inspección y edición de memoria: COMPARAR: C rango dirección Compare dos rangos de memoria, mostrando las diferencias. Solo se requiere la dirección inicial del segundo rango, Debug asumirá que el segundo rango tendrá el mismo tamaño que el primero. Por ejemplo: C 100,110 200 comparará el rango de 100,110 a 200,210. VACIAR A: D [rango] Mostrar el contenido de un rango de memoria. Si no se especifica ningún rango, el volcado mostrará 128 octetos, comenzando donde terminó el último volcado o al comienzo del archivo cargado. DM Muestra la cadena del bloque de control de memoria DOS (MCB) y la PSP actual. ENTRAR: E dirección [lista] Escribir sobre parte de la memoria, comenzando en «dirección», la lista de octetos indicada. Para ingresar una cadena de caracteres de texto, encierre el texto entre comillas dobles. Por ejemplo: E 100 "¡Hola!" LLENAR: F rango lista Escriba sobre un rango de memoria con una lista repetida de octetos. Por ejemplo, para establecer un rango de memoria en cero, podría poner E 100,110 0 y para establecer en un rango de memoria «brumbrum» E 100,107 "brum" MOVER: M rango_fuente dest_dirección Copia el rango de origen rango_fuente en otro rango que comienza en la dirección dest_dirección. BUSCAR: S rango lista Busca todas las ocurrencias de la lista de octetos en el rango especificado. Se muestra la dirección de inicio de cada ocurencia. Cálculo de números en hexadecimal: HEX H valor1 valor2 Muestra dos números, el primero es valor1 + valor2, el segundo es valor1 - valor2. H puede manejar valores dword. Carga y guardado de archivos: CARGAR PROGRAMA O ARCHIVO: L [dirección] Cargar programa. L dirección unidad sector recuento Cargar sectores. ESCOGER UN NOMBRE: N [[unidad:][ruta]mon_programa [lista_arg]] Establecer el nombre para el archivo / programa actual. ESCRIBIR PROGRAMA O ARCHIVO: W [dirección] Escribir el programa / archivo actual en el disco. Use N para cambiar el nombre si no desea sobrescribir el archivo original. W dirección unidad sector recuento Escribir sectores. Montaje y desmontaje: MONTAR: A [dirección] Ensamblador. DESMONTAR: U [rango] Desensamblador. MODO 80x86: M[configuración] El procesador actual puede declararse como otro diferente a través de los siguientes comandos: m0 Declara que el procesador actual es un 8088 m1 Declara 80186 m2 Declara 286 m3 Declara 386 m4 Declara 486 m5 Declara Pentium m6 Declara Pentium Pro MC Declarar la existencia de un coprocesador matemático. MNC Declarar la ausencia de un coprocesador matemático. MC2 Declarar que el coprocesador matemático es un 287 (solo válido si el procesador actual es un 386) M? (Solo versiones anteriores): Imprime el tipo de procesador actualmente declarado. M Imprimir el tipo de procesador declarado actualmente. Ejecución del programa: IR A: G [=dirección] [puntos_interrupción] Comenzar la ejecución del programa cargado o el código de máquina en la dirección especificada. La ejecución se suspende en las direcciones de parada, lo que le permite inspeccionar la memoria, etc. CONTINUAR: P [=dirección] [recuento] Proceder con la ejecución paso a paso. REGISTRAR: R [registro [valor]] Mostrar todos los registros de la CPU, o mostrar/ establecer un registro particular. Acepta nombres de registro de 32 bits (para CPU 80386+). RN Mostrar el estado del registro de FPU. DEBUG mostrará solo los valores hexadecimales sin formato de los registros, mientras que DEBUGX mostrará los valores en formato de punto flotante. RX Cambiar entre la pantalla de registro 8086 y 80386 (para CPU 80386+). RASTREAR: T [=dirección] [recuento] Rastrear TM [0|1] Establecer el modo de rastreo, 0=INT del proceso (predeterminado), 1=INT de un solo paso (el modo compatible con la depuración de MS-DOS). Puerto E/S: ENTRADA: I Puerto Entrada desde un puerto IW Puerto Entrada desde un puerto WORD ID Puerto Entrada desde un puerto DWORD Los valores DWORD requieren una CPU 80386+. SALIDA: O Puerto Valor Salida a un puerto. OW Puerto Valor Salida a un puerto WORD. OD Puerto Valor Salida a un puerto DWORD. Los valores DWORD requieren una CPU 80386+. Comandos de memoria expandida (EMS) (solo si está presente EMM v4.0): XA recuento Asigne un identificador EMS «vacío» con cero páginas. XD identificador Desasignar. XM página_lógica página_física identificador Investigar memoria. XR identificador recuento Reasignar un identificador EMS. XS Mostrar estado. X? Mostrar ayuda sobre los comandos X.

Comentarios:

DEBUG usa hexadecimal (base 16). Las direcciones de memoria se muestran en la forma segmento:desplazamiento, por ejemplo 0D00:0100. Los últimos cuatro digitos hexadecimales, que especifican el desplazamiento del segmento, pueden ir de 0000 a FFFF, un rango de 64 kilobytes. Los ejecutables con la extensión .com tienen todos sus datos y códigos en un segmento. Por lo tanto para los archivos .com generalmente solo puede escribir el desplazamiento al especificar direcciones de memoria en los comandos DEBUG. DEBUG asumirá el segmento del programa. Lo mismo también es cierto para los archivos de texto / binarios que son <64K de largo. Para especificar un rango de memoria, separe dos direcciones con una coma. La carga de archivos .HEX no está implementado en DEBUG. El ensamblador y desensamblador admite todas las instrucciones documentadas públicamente para los chip Intel en el Pentium Pro (P6), excepto las instrucciones MMX. El ensamblador y desensamblador le informará si alguna instrucción es inapropiada para el procesador actual. Se admiten códigos de operación FPU.

Ejemplos:

Crear una copia de seguridad del sector de arranque (sector número 0 con 512 bytes = 0x200) de la unidad C: (número 2) en el archivo BOOT_C.BIN en el disquete A: A: cd \ echo L 100 2 0 1 >BOOT_C.TXT echo RCX >>BOOT_C.TXT echo 200 >>BOOT_C.TXT N BOOT_C.BIN >>BOOT_C.TXT W >>BOOT_C.TXT Q >>BOOT_C.TXT DEBUG <BOOT_C.TXT Mirando con DEBUG en la RAM de la tarjeta gráfica para encontrar algunos caracteres especiales, como el año, para identificar la tarjeta: DEBUG S C000:0000,07FF "BIOS" S C000:0,7FF "(C)" S c000:0,7ff "199" s c000:0,7ff "200" D C000:0000,100 Q

Ver también:

(emm386) jemm386 jemmex undelete ------------------------------------------------------------------------------ Copyright (C) 2003 Robert Platt, modificado en 2008 por W. Spiegl. Traducido en 2020 por Lorenzo del Toro Saravia. Este archivo se deriva del comando de especificaciones HOWTO de FreeDOS. Consulte el archivo H2Cpying para ver las condiciones de copia.