Menú
Está libre
registro
hogar  /  SOBRE/ Instalación de herramientas de depuración para Windows. Trabajar con la línea de comandos de Windows, el programa Debug y su uso ¿Qué es la utilidad debug exe?

Instalación de herramientas de depuración para Windows. Trabajar con la línea de comandos de Windows, el programa Debug y su uso ¿Qué es la utilidad debug exe?

Debug.exe- un programa de depuración que se utiliza para comprobar y depurar archivos ejecutables.

Usado bajo el sistema operativo MS-DOS ... Para versiones posteriores de sistemas operativos

funciona a través del emulador MS-DOS y tiene capacidades limitadas. Llamado a través de la línea de tiempo del comando

DEBUG [[unidad:] [ruta] nombre de archivo [opciones]].

Por ejemplo: DEBUG C: \ ... \ My.com

Este programa es una aplicación de consola y está diseñada para crear o modificar el código de archivos. Con él, puede crear aplicaciones simples para MS-DOS y realizar un seguimiento de su trabajo. Este depurador está en el nivel de compilador más bajo ensamblador... Pero tiene buenas capacidades, como ver y cambiar la memoria, obtener el estado de los registros.

Comandos Debug.exe

El comando Debug.exe establece las reglas:

· Debug.exe no distingue entre mayúsculas y minúsculas.

· Los espacios en los comandos se utilizan solo para separar parámetros.

· Los números ingresados ​​deben estar en notación hexadecimal y sin la letra h al final.

· El segmento y el desplazamiento se escriben con dos puntos, en el formato segmento: desplazamiento, por ejemplo, CS: 3C1 (desplazamiento 3C1h en el segmento de código) o 40:17 (desplazamiento 17h en el segmento cuya dirección de inicio es 40h).

Después de cargar el depurador, aparece un mensaje con guiones en la pantalla. Registros Cs, DS, ES, SS en este momento, se inicializan con la dirección del prefijo de 256 bytes del segmento de programa, y ​​el área de trabajo en memoria comenzará a partir de la dirección de este prefijo + 100h. Comandos debug.exe se ingresan inmediatamente después de la indicación en la ubicación marcada con el cursor. Cada comando consta de un identificador y parámetros, el identificador consta de una letra.

Tabla 1. Resumen de todos los comandos debug.exe

Mando Descripción Formato
A (ensamblar) Traducir las instrucciones de montaje a código de máquina; la dirección predeterminada es CS: 0100h. A [<адрес_начала_кода>]
C (comparar) Comparación de los contenidos de dos áreas de memoria; el predeterminado es DS. El comando especifica la longitud de los segmentos o el rango de direcciones. C<начальный_адрес_1>L<длина> <начальный_адрес_2>C<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
D (visualización / volcado) Muestra el contenido de un área de memoria en formatos hexadecimal y ASCII. El predeterminado es DS; puede especificar una longitud o un rango. D [<начальный_адрес>] D [start_address end_address]
E (Entrar) Ingresar datos o instrucciones del código de la máquina en la memoria; el predeterminado es DS. E [<адрес> [<инструкции/данные>]]
F (relleno) Llenar el área de la memoria con datos de la lista; el predeterminado es DS. Se pueden utilizar tanto la longitud como el alcance. F<начальный_адрес_1>L<длина> "<данные>"F<начальный_адрес> <конечный_адрес> "<данные>"
G (ir) Ejecución de un programa de lenguaje de máquina depurado hasta un punto de interrupción especificado; el predeterminado es CS. Al hacerlo, asegúrese de que la IP contenga la dirección correcta. G [=<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
H (hexadecimal) Calcula la suma y la diferencia de dos valores hexadecimales. H<величина_1> <величина_2>
Yo (entrada) Leer y generar un byte desde el puerto. I<адрес_порта>
L (carga) Carga de un archivo o datos de los sectores del disco en la memoria; el valor predeterminado es CS: 100h. El archivo se puede especificar mediante el comando N o un argumento al ejecutar debug.exe. L [<адрес_в_памяти_для_загрузки>] L [<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
M (mover) Copiar el contenido de las celdas de memoria; el predeterminado es DS. Se pueden especificar tanto la longitud como el rango. METRO<начальный_адрес>L<длина> <адрес_назначения>METRO<начальный_адрес> <конечный_адрес> <адрес_назначения>
N (nombre) Especificar un nombre de archivo para los comandos L y W. norte<имя_файла>
O (salida) Envío de un byte al puerto. O<адрес_порта> <байт>
P (Continuar) Ejecute CALL, LOOP, INT o una sentencia de cadena repetida con prefijos REPnn, pasando a la siguiente sentencia. P [=<адрес_начала>] [<количество_инструкций>]
Q (Salir) Apague debug.exe. Q
R (registro) Salida del contenido de los registros y la siguiente instrucción. R<имя_регистра>
S (Buscar) Busque en la memoria los símbolos de la lista; el predeterminado es DS. Se pueden especificar tanto la longitud como el rango. S<начальный_адрес>L<длина> "<данные>"S<начальный_адрес> <конечный_адрес> "<данные>"
T (seguimiento) Ejecución paso a paso del programa. Al igual que con el comando P, el valor predeterminado es el par CS: IP. Tenga en cuenta que es mejor utilizar el comando P para ejecutar interrupciones. T [=<адрес_начала>] [<количество_выполняемых_команд>]
U (Desmontar) Desmontaje del código de la máquina; el valor predeterminado es CS: par de IP. Desafortunadamente, debug.exe no desensambla correctamente las instrucciones específicas para los procesadores 80286+, aunque aún se ejecutan correctamente. U [<начальный_адрес>] U [<начальный_адрес конечный_адрес>]
W (escribir) Escribir un archivo desde debug.exe; es imperativo especificar el nombre del archivo con el comando N, si no se ha cargado. ¡Y los programas se escriben solo como archivos .COM! W [<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


Ver áreas de memoria

Consideremos en detalle el trabajo del equipo. D, que le permite ver el contenido de áreas individuales de la memoria. Este ejemplo usa el comando D para ver el área de memoria a partir de 0159: 0240:

Aquí, en la solicitud para ver el área de memoria, recibimos ocho líneas, que indican el contenido del área de memoria seleccionada. Cada línea tiene tres partes:

La dirección del primer byte que se muestra desde la izquierda en el formato segmento: desplazamiento.

· Representación hexadecimal del párrafo (16 bytes), comenzando por el byte indicado al principio de la línea.

· Caracteres del mismo párrafo en formato ASCII.

La dirección especificada en la línea se refiere exclusivamente al primer byte del párrafo, y las direcciones de los bytes siguientes deben calcularse de forma independiente. La representación hexadecimal contiene dos caracteres por byte y los propios bytes están separados por espacios para facilitar la lectura. Además, debe tenerse en cuenta que los bytes octavo y noveno están separados por un guión, lo que divide el párrafo en dos y facilita el cálculo de las direcciones de los bytes en el párrafo.

Trucos del equipo D

Comprobación de puertos serie y paralelo

Los primeros 16 bytes del área de datos del BIOS contienen las direcciones de los puertos serie y paralelo. Por lo tanto, usando el siguiente comando, puede verificar estos puertos:

Los primeros ocho bytes impresos indican las direcciones del puerto serie COM1-COM4... Los siguientes 8 bytes indican las direcciones de los puertos paralelos. LPT1-LPT4... Por ejemplo, si su computadora tiene un puerto paralelo, lo más probable es que los primeros dos bytes sean: 7803. La dirección del puerto se escribe en orden inverso; 0378.

Verificación de equipo

Los primeros dos bytes, ubicados en el BIOS en 410 h, contienen información sobre el hardware instalado en el sistema. Encontramos estos bytes con el comando:

Supongamos que los dos primeros bytes son 23 44. Descifremos estos bytes para obtener información sobre los dispositivos instalados. Para hacer esto, invierta estos bytes (44 23), luego tradúzcalos a sistema binario estimación. Obtenemos:

Valor de bit
Posición de la broca

¿Qué significan estos bits? Seguimos descifrando:

Comprobación del estado del registro del teclado

En el campo de los datos BIOS por la dirección 417h se ubica el primer byte, que almacena el estado del registro del teclado. Apagar Num lock y Bloq Mayús , luego escribimos el comando:

El primer byte será 00. Incluyendo Num lock y Bloq Mayús, ejecute el comando nuevamente. Ahora el primer byte debería ser igual a 60. Num lock el primer byte es 20, y cuando Bloq Mayús - 40.

Comprobación del estado del sistema de video

Por la dirección 449h v BIOS se encuentra la primera área de datos de video. Para comprobarlo, escribimos:

El primer byte muestra el modo de video actual (por ejemplo, 03 es el color) y el segundo es el número de columnas (por ejemplo, 50 es un modo con 80 columnas). El número de líneas se puede encontrar en 484h (40:84).

Comprobación de los derechos de autor y el número de serie del BIOS

Información de copyright para BIOS incrustado en BIOS ROM por la dirección FE00: 0... La cadena de copyright se puede encontrar fácilmente en la secuencia ASCII, y número de serie- como número hexadecimal. Sin embargo, la línea de copyright puede ser larga y no encajar en el área de la memoria de salida. En este caso, solo debe ingresar nuevamente D.

Verificación de la fecha de producción del BIOS

Esta fecha también se registra en BIOS ROM comenzando desde la dirección FFFF: 5... Después de ejecutar el comando correspondiente, la secuencia ASCII contendrá esta fecha escrita en el formato mm / dd / aa.

Ingresando el programa directamente en la memoria usando debug.exe

debug.exe le permite ingresar un programa directamente en la memoria de la máquina, y luego monitorear y controlar su ejecución. Ingresaremos el programa en códigos máquina usando el comando mi... En este caso, esté atento: ¡Ingresar datos erróneos en la dirección incorrecta está plagado de consecuencias impredecibles! Aunque es poco probable que esto dé lugar a problemas graves en el sistema, perderá todos los datos ingresados ​​en debug.exe, tu puedes fácilmente. El programa que se va a introducir utiliza los datos almacenados directamente en el cuerpo de las instrucciones. La siguiente es una lista de un programa en Assembler, los comentarios indican análogos de comandos de lenguaje en códigos de máquina, así como una explicación de cada comando. Tenga en cuenta que no hay ningún símbolo en los números h ya que, como se mencionó anteriormente, debug.exe entiende solo números hexadecimales.

MOV AX, 0123; código B82301: ingrese el valor 0123h en AX

AÑADIR AX, 0025; código 052500: agregue 0225h al valor de AX

MOV BX, AX; código 8BD8: ingrese el valor de AX en BX

AÑADIR BX, AX; código 03D8: agregue el valor de AX a BX

MOV CX, BX; código 8BCB: ingrese el valor de BX en CX

SUB CX, AX; código 2BC8: reste el valor de AX de CX

SUB AX, AX; código 2BC0: clear AX

JMP 100; Código EBEE: ir al principio del programa

Como puede ver, cada instrucción de máquina tiene una longitud de 1 a 3 bytes. El primer byte indica la operación, los siguientes indican sus operandos. La ejecución del programa comienza, respectivamente, desde la primera instrucción y recorre secuencialmente todas las instrucciones una tras otra. El programa ahora se puede ingresar en la memoria. Divida el código de la máquina en tres partes de seis bytes e ingrese cada uno usando el comando mi y comenzando desde la dirección CS: 100.

Ahora que el programa está en la memoria, intentemos controlar su ejecución. Primero, revisemos Estado actual registros y banderas, para ello ingresamos el comando R... El depurador imprimirá el contenido de los registros en forma hexadecimal; sobre diferentes autos el contenido de los registros puede variar.

Como puedes ver debug.exe segmentos inicializados DS, ES, SS, Cs la misma dirección. Registrarse IP contiene 0100 , lo que indica que las instrucciones se están ejecutando en el desplazamiento 100h relativamente Cs(y nosotros, ingresando instrucciones en la memoria, acabamos de indicar esta dirección).

Los valores de las banderas de desbordamiento, dirección, interrupción, signo, cero, acarreo adicional, paridad y acarreo también se indican aquí:

Después de los registros y el estado de las banderas, debug.exe imprime información sobre la primera instrucción que se ejecutará:

· La dirección de la instrucción, en nuestro caso es 0B12: 0100, donde 0B12 es la dirección del segmento de código.

· Código máquina según este manual (B82301).

· La instrucción real escrita en ensamblador (MOV AX, 0123).

Ahora, después de analizar el contenido de los registros y banderas, pasemos a ejecutar el programa. Ejecutaremos el programa paso a paso usando el comando T... La primera vez que usa el comando T, seguimos las instrucciones MOV... Aquí el código de máquina del operando de instrucción - 2301 ... Lugares de operación 23 v Alabama(mitad más joven HACHA), a 01 - v AH(más viejo). Después debug.exe nuevamente imprime información sobre registros:

Ahora HACHA contiene 0123h, IP0103h(de ahí la longitud de la declaración ejecutada: 0103h - 0100h = 3 byte), y la siguiente instrucción es la operación AGREGAR... Entonces, una y otra vez ejecutando el comando T, llegaremos a la última instrucción JMP 100... Establecerá el registro IP v 100h, y debug.exe volverá al principio del programa. Volviendo al inicio del programa, cabe señalar que en DS, ES, SS y Cs contiene la misma dirección. El hecho es que debug.exe considera los programas ingresados ​​únicamente como programas .COM... Y en programas .COM, Diferente a .EXE, la pila, el código y los datos se almacenan en un segmento.

Montaje y desmontaje

En el ejemplo anterior, ingresamos el programa en códigos de máquina, sin embargo, debug.exe bastante capaz de entender las instrucciones escritas en ensamblador. Para trabajar con tales programas en debug.exe se utilizan comandos A y U.

Mando A solicita instrucciones de ensamblaje y las convierte a código de máquina. Primero, inicializamos la dirección de inicio para ingresar instrucciones (100h):

El depurador imprimirá la dirección del segmento de código y el desplazamiento (por ejemplo, 13F2: 0100). Ahora tenemos que ingresar las siguientes instrucciones de ensamblaje en la memoria, después de cada línea presionando Ingresar:

Después de ingresar la última instrucción, presione Ingresar dos veces para indicar al depurador que hemos terminado de introducir el texto del programa. Ahora el programa se puede ejecutar usando los comandos R para ver los registros y T para rastrear. Noto que en mis programas, si hay instrucciones EN T no deben ser procesados ​​por un comando T, y el comando PAG que maneja toda la interrupción a la vez.

Pasemos al procedimiento de desmontaje y tomemos el programa que se acaba de presentar como ejemplo. Usamos las direcciones de la primera y última instrucción para indicar el rango que vamos a desmontar, es decir 100h y 107h.

Después de ejecutar este comando debug.exe mostrará instrucciones que están en el rango especificado, en ensamblador, en códigos de máquina, así como la dirección de cada instrucción:

Guardar un programa en el disco

Primero se da el nombre del archivo:

Luego en el registro SH es necesario poner el tamaño del programa en bytes. Será igual a la diferencia entre las compensaciones de inicio y final. Ahora todo lo que queda es escribir en disco con el comando W y como resultado, vea el número escrito de bytes. Como resultado, tenemos un programa listo para su ejecución.

La salida se realiza mediante el comando q... Ejemplo:

0B3B: 0100 mov hacha, 1234

0B3B: 0103 mov ah, 4c

0B3B: 0105 int 21

0B3B: 0100 B83412 MOV HACHA, 1234

0B3B: 0103 B44C MOV AH, 4C

0B3B: 0105 CD21 INT 21

AX = 0000 BX = 0000 CX = 0007 DX = 0000 SP = FFEE BP = 0000 SI = 0000 DI = 0000

DS = 0B3B ES = 0B3B SS = 0B3B CS = 0B3B IP = 0100 NV UP EI PL NZ NA PO NC

0B3B: 0100 B83412 MOV HACHA, 1234

Escribe 00007 bytes

Para lograr esto trabajo de laboratorio necesitará algunos comandos de ensamblador:

MOV AH,<шестнадцатиричное число>- escribiendo al registro AH los números 02 para indicar una función del sistema, mostrando un símbolo en la pantalla;

MOV DL,<шестнадцатиричное число>- escribiendo al registro DL código de carácter;

INT 21 - la interrupción (procedimiento) principal de DOS, que implementa muchas funciones diferentes; el número de función está preescrito en el registro AH; para imprimir un carácter en la pantalla - en la función de registro AH 02, mientras que en DL pregrabe el código del símbolo.

INT 20 es una interrupción de DOS que sale del programa (desde el programa .COM).

Ejemplo:

Muestra el carácter "*" en la pantalla.

mov AH, 02; función del sistema 02 - mostrando un personaje en la pantalla

mov DL, 2A; Asterisco ASCII

int 21h; interrupción para salida "*"

int 20h; salir del programa

Tarea practica

Objetivo

Familiaridad con el depurador debug.exe. Adquirir habilidades prácticas para trabajar con este programa.

Equipo:

Computadora personal ejecutando el sistema operativo Windows.

Software:

Programa de depuración.

Preguntas de admisión

1. ¿Para qué sirve la depuración?

2. ¿Cómo inicio este programa?

3. ¿Cómo se ingresan los comandos en Debug?

4. ¿Qué es un identificador?

5. ¿Cómo se ingresa el programa en Debug?

Ejercicio

· Estudiar material teórico.

· Ejecuta los comandos descritos a lo largo del camino.

Encuentre la suma y la diferencia de 2 números: el primer número es el número en el grupo (traducido a la forma hexadecimal), el segundo es el número opuesto al número de la primera letra del apellido en el alfabeto ( un número negativo código de complemento de in). Convierta la suma y la diferencia a decimal.

· Ver el contenido de los registros y banderas del microprocesador y anotarlos en el protocolo. ¿Cuál es la función de cada uno de los registros? ...

· Escriba en el registro AX el primer número (de la tarea 3), y en el registro BX - el segundo (de la tarea 3). Entrar en RAM en el segmento de código (desplazamiento 100) la instrucción de máquina para agregar los registros AX y BX. Vea su formulario de ensamblador en la pantalla. Ejecute este comando, convierta el resultado a forma decimal.

· Ingrese en la memoria principal en el segmento de código (compensación 100) un conjunto de comandos de ensamblador para imprimir un carácter en la pantalla: la primera letra de su apellido. Consulta el programa en DEBUG. Luego grábelo en el disco como un archivo .COM. ¿Cuál es el tamaño del programa? Ejecútelo desde DOS.

· Describa todas las acciones en el informe.

1. Título del trabajo.

2. El propósito del trabajo.

3. Instrumentos y equipos.

4. Breve información teórica.

5. Descripción de las acciones realizadas.

6. El texto del programa creado.

7. Conclusiones.

Preguntas de control

1. ¿Qué comando realiza la entrada en la memoria de datos o instrucciones de código máquina?

2. ¿Cómo comparar el contenido de dos áreas de memoria?

3. ¿Cómo llenar el área de memoria con datos de la lista?

4. ¿Qué comando ejecuta el programa de máquina depurado?

5. ¿Qué comando escribe el archivo de Debug?

6. ¿Cómo se realiza el montaje y desmontaje?

Herramientas de depuración para ventanas - Herramientas de depuración para código operativo. Sistemas Windows... Son un conjunto de software gratuito de Microsoft diseñado para depurar código en modo usuario y modo kernel: aplicaciones, controladores, servicios, módulos del kernel. El kit de herramientas incluye depuradores en modo consola y GUI, utilidades para trabajar con símbolos, archivos, procesos y utilidades para la depuración remota. El kit de herramientas contiene utilidades con las que puede encontrar las causas de fallas en varios componentes del sistema. Herramientas de depuración para Windows a partir de un momento determinado, no están disponibles para su descarga en forma de un kit de distribución independiente y se incluyen en el SDK de Windows (Kit de desarrollo de software de Windows). Conjunto instrumental Herramientas de Windows El SDK, a su vez, está disponible como parte del programa de suscripción de MSDN o puede descargarse gratuitamente como una distribución independiente desde msdn.microsoft.com. Según los desarrolladores, el último y más versión actual Las herramientas de depuración para Windows están incluidas en el SDK de Windows.

Las herramientas de depuración para Windows se actualizan y cargan en Acceso público con bastante frecuencia y este proceso no depende de ninguna manera del lanzamiento de los sistemas operativos. Por lo tanto, compruebe periódicamente si hay nuevas versiones.

Veamos ahora qué, en particular, las herramientas de depuración para Microsoft Windows:

  • Depurar aplicaciones locales, servicios (servicios), controladores y kernel;
  • Depurar aplicaciones, servicios (servicios), controladores y kernel remotos a través de la red;
  • Depurar aplicaciones en ejecución en tiempo real;
  • Analice los archivos de volcado de la memoria de la aplicación, el kernel y el sistema en su conjunto;
  • Trabajar con sistemas basados ​​en arquitecturas x86 / x64 / Itanium;
  • Depurar programas en modo de usuario y en modo de núcleo;

Están disponibles las siguientes versiones de las herramientas de depuración para Windows: x86 de 32 bits, Intel Itanium, x64 de 64 bits. Necesitamos dos de ellos: x86 o x64.

Hay varias formas de instalar Debugging Tools para Windows, en este artículo consideraremos solo las principales:

  • Instalación a través del instalador web.
  • Instalación de herramientas de depuración para Windows desde la imagen ISO del SDK de Windows.
  • Instalación de herramientas de depuración para Windows directamente desde los paquetes dbg_amd64.msi /dbg_x86.msi.

No está claro en qué momento, ¿por qué debería instalar el kit de herramientas de depuración en mi computadora? Después de todo, a menudo se enfrenta a una situación en la que la interferencia en el entorno de trabajo es extremadamente indeseable. Además, la instalación de un nuevo producto, es decir, realizar cambios en los archivos de registro / sistema, puede ser completamente inaceptable. Algunos ejemplos son los servidores de misión crítica. ¿Por qué los desarrolladores no piensan en una opción con versiones portátiles (portátiles) de aplicaciones que no requieren instalación?
El proceso de instalación del paquete de herramientas de depuración para Windows ha sufrido varios cambios de una versión a otra. Pasemos ahora directamente al proceso de instalación y veamos las formas en que se puede instalar el kit de herramientas.

Instalación de herramientas de depuración para Windows mediante el instalador web

Vaya a la página de Windows SDK Archive y busque una sección llamada Windows 10 y debajo del elemento "Windows 10 SDK (10586) y un emulador de dispositivo con Windows 10 Mobile (Microsoft) (versión 10586.11)".

Hacemos clic en el elemento INSTALAR SDK... Después de hacer clic, descargue y ejecute el archivo sdksetup.exe, que inicia la instalación en línea del SDK de Windows. En la etapa inicial, el instalador verificará el paquete .NET instalado en el sistema. Framework más reciente versión (en este momento esto es 4.5). Si falta el paquete, se ofrecerá la instalación y la estación se reiniciará al finalizar. Inmediatamente después del reinicio, en la etapa de autorización del usuario, el proceso de instalación comienza directamente desde el SDK de Windows.

A menudo, al elegir todos los componentes de un paquete sin excepción, pueden producirse errores durante el proceso de instalación. En este caso, se recomienda instalar los componentes de forma selectiva, el conjunto mínimo requerido.

Una vez completada la instalación de las herramientas de depuración para Windows, la ubicación de los archivos de depuración cuando este método instalaciones tendremos las siguientes:

  • Versiones de 64 bits: C: \ Archivos de programa (x86) \ Kits de Windows \ x.x \ Debuggers \ x64
  • Versiones de 32 bits: C: \ Archivos de programa (x86) \ Kits de Windows \ x.x \ Debuggers \ x86

* donde x.x es una versión específica del kit de desarrollo;
¿Ha notado que en las versiones 8 y superiores, las rutas de instalación son notablemente diferentes de las clásicas para todas las versiones anteriores de las herramientas de depuración?

Una gran ventaja este método La instalación de herramientas de depuración para Windows es la instalación de versiones de las herramientas de depuración para todas las arquitecturas a la vez.

Instalación de herramientas de depuración para Windows desde la imagen ISO del SDK de Windows

Este método implica la instalación de las herramientas de depuración para Windows utilizando una imagen de instalación completa del SDK de Windows (Software Developers Kit). Hasta cierto tiempo, era posible descargar la imagen ISO para el sistema correspondiente en la página de Windows SDK Archive. Sin embargo, por el momento, puede obtener una imagen ISO del SDK ejecutando el instalador web sdksetup.exe y seleccionando el elemento Descargue el kit de desarrollo de software de Windows en la ventana de inicio del instalador:

Como se descubrió, el método anterior de instalación mediante el instalador web es bastante caprichoso y, a menudo, falla. En sistemas limpios, se instala sin problemas, sin embargo, en sistemas suficientemente cargados, surgen numerosos problemas. Si tiene un caso así, utilice este método.

En consecuencia, en la página es necesario seleccionar el kit de distribución requerido, para mí (y creo que para muchos) en este momento es " Paquete de Windows SDK para Windows 7 y .NET Framework 4 "y justo debajo haga clic en el enlace" Obtener una imagen ISO de DVD ".

Cuando trabaje con el sitio msdn.microsoft.com, le aconsejo que utilice un navegador explorador de Internet¡Porque ha habido casos de productos de la competencia que no funcionan!

En consecuencia, es necesario elegir solo cuando sea necesario. Por lo general, el valor de bits de Debugging Tools para Windows es el mismo que el del sistema. Mis sistemas bajo investigación son en su mayoría de 64 bits, por lo que en la mayoría de los casos descargo la imagen para el sistema de 64 bits GRMSDKX_EN_DVD.iso.
Luego, después de descargar la imagen, necesitamos trabajar de alguna manera con la imagen ISO existente. La forma tradicional es, por supuesto, grabar un CD, pero este es un método bastante largo y, a veces, costoso. Sugiero usar utilidades gratuitas para crear dispositivos de disco virtual en el sistema. Personalmente, prefiero usar el programa DEAMON Tools Lite para este propósito. Alguien puede tener otras preferencias, utilidades, gustos y colores más directos o ligeros, como dicen .. Después de instalar DAEMON Herramientas Lite, Simplemente hago doble clic en el archivo de imagen GRMSDKX_EN_DVD.iso y aparece un nuevo CD virtual en el sistema:

Luego haga doble clic Activo la ejecución automática e inicio la instalación del SDK de Windows:

Cuando llega el turno de seleccionar los componentes a instalar de la lista, entonces deshabilitamos absolutamente todas las opciones excepto las marcadas en la captura de pantalla. Esto nos ayudará a evitar errores innecesarios ahora.


Todo es exactamente así, en la captura de pantalla se marcan dos opciones: "Windows Performance Toolkit" y "Herramientas de depuración para Windows". Elija ambos, porque el kit de herramientas de rendimiento de Windows definitivamente será útil para su trabajo. Además, después de hacer clic en el botón "Siguiente", la instalación continúa en modo normal... Y al final verá la inscripción "Instalación completa".
Al final de la instalación, los directorios de trabajo del conjunto de Herramientas de depuración para Windows serán los siguientes:

  • Para la versión x86:
  • Para la versión x64:

Esto completa la instalación de las herramientas de depuración para Windows.

Instalación de herramientas de depuración para Windows a través de un archivo .msi

En caso de problemas durante la instalación de Debugging Tools para Windows en las dos formas anteriores, todavía tenemos una más, la más confiable y probada en el tiempo, que ayudó, por así decirlo, más de una vez. Érase una vez, antes de la integración en el SDK de Windows, las herramientas de depuración para Windows estaban disponibles como un instalador .msi separado, que todavía se puede encontrar ahora, pero ya en profundidad. Distribución de Windows SDK. Como ya tenemos una imagen ISO del SDK de Windows en nuestras manos, no podemos montarlo en el sistema, sino simplemente abrirlo con la ayuda del familiar Archivador WinRAR, bueno, o cualquier otro producto que funcione con el contenido de los discos ISO.

Después de abrir la imagen, debemos ir al directorio "Configuración" ubicado en la raíz y luego seleccionar uno de los directorios:

  • Para instalar la versión de 64 bits: \ Setup \ WinSDKDebuggingTools_amd64 y descomprima el archivo dbg_amd64.msi de este directorio.
  • Para instalar la versión de 32 bits: \ Setup \ WinSDKDebuggingTools y descomprima el archivo dbg_x86.msi de este directorio.

Al final de la instalación, los directorios de trabajo del conjunto de Herramientas de depuración para Windows serán los siguientes:

  • Para la versión x86: C: \ Archivos de programa (x86) \ Herramientas de depuración para Windows (x86)
  • Para la versión x64: C: \ Archivos de programa \ Herramientas de depuración para Windows (x64)

En este punto, la instalación de las herramientas de depuración para Windows está completa.

información adicional

No sé con qué está conectado, tal vez por mi descuido, pero después de instalar las herramientas de depuración para Windows, el instalador no registra la ruta al directorio con el depurador en la variable de sistema Path. Esto impone ciertas restricciones sobre el lanzamiento de varias tareas de depuración directamente desde la consola. Por lo tanto, a falta de un camino, yo mismo escribo en la ventana. Variables de entorno ruta a las herramientas de depuración:

  • C: \ Archivos de programa (x86) \ Windows Kits \ 10 \ Debuggers \ x86
  • C: \ Archivos de programa (x86) \ Windows Kits \ 10 \ Debuggers \ x64

* En su caso, las rutas pueden diferir tanto por el uso de un SO de diferente bitness como por el uso del SDK de una versión diferente.

Las herramientas de depuración para las utilidades del paquete de Windows pueden funcionar como aplicaciones portátiles, simplemente copie desde sistema de trabajo catalogar Kit de herramientas de rendimiento de Microsoft Windows y utilícelo como una versión portátil en un servidor de producción. ¡¡Pero no olvides tener en cuenta la capacidad del sistema !! Incluso si ha instalado completamente el paquete en un sistema crítico, puede comenzar a trabajar inmediatamente después de la instalación, no es necesario reiniciar.

Herramientas de depuración para la composición de Windows

Y ahora, finalmente, presentamos la composición de Debugging Tools para Windows:

Expediente Cita
adplus.doc Documentación para la utilidad ADPlus.
adplus.exe Una aplicación de consola que automatiza el depurador de cdb para crear volcados, archivos de registro para uno o más procesos.
erastore.exe Una utilidad para eliminar archivos obsoletos del repositorio que utiliza el servidor de símbolos o el servidor de origen.
breakin.exe Una utilidad que le permite enviar una combinación de interrupción definida por el usuario a los procesos, similar a presionar CTRL + C.
cdb.exe Un depurador de consola en modo de usuario.
convertstore.exe Utilidad para convertir símbolos de 2 niveles a 3 niveles.
dbengprx.exe Reaper (servidor proxy) para depuración remota.
dbgrpc.exe Una utilidad para mostrar información sobre el estado de una llamada RPC.
dbgsrv.exe Proceso de servidor utilizado para depuración remota.
dbh.exe Una utilidad para mostrar información sobre el contenido de un archivo de símbolos.
dumpchk.exe Utilidad de verificación de volcado. Utilidad para comprobación rápida archivo de volcado.
dumpexam.exe Una utilidad para analizar un volcado de memoria. El resultado se muestra en% SystemRoot% \ MEMORY.TXT.
gflags.exe El editor de las banderas globales del sistema. La utilidad administra las claves de registro y otras configuraciones.
i386kd.exe Envoltorio para kd. ¿Cuándo se llamó kd para sistemas basados ​​en Windows NT / 2000 para máquinas x86? Probablemente se fue por razones de compatibilidad.
ia64kd.exe Envoltorio para kd. ¿Cuándo se llamó kd para sistemas basados ​​en Windows NT / 2000 para máquinas ia64? Probablemente se fue por razones de compatibilidad.
kd.exe Depurador de consola en modo kernel.
kdbgctrl.exe Herramienta de gestión de depuración de kernel. Utilidad para administrar y configurar la conexión de depuración del kernel.
kdsrv.exe Servidor de conexión para KD. La utilidad es una pequeña aplicación que se inicia y espera conexiones remotas. kd se ejecuta en el cliente y se conecta a ese servidor para la depuración remota. Tanto el servidor como el cliente deben ser del mismo conjunto de herramientas de depuración.
kill.exe Utilidad para terminar procesos.
list.exe Una utilidad para mostrar el contenido de un archivo en la pantalla. En el paquete, esta utilidad en miniatura resultó tener un propósito: ver grandes archivos de texto o de registro. Ocupa poco espacio en la memoria, ya que carga el texto en trozos.
logger.exe Un depurador en miniatura que solo puede funcionar con un proceso. La utilidad inyecta logexts.dll en el espacio del proceso, que registra todas las llamadas a funciones y otras acciones del programa que se investiga.
logviewer.exe Una utilidad para ver registros escritos por el depurador logger.exe.
ntsd.exe Depurador simbólico de Microsoft NT (NTSD). Depurador, idéntico a cdb, excepto que crea un cuadro de texto al inicio. Como cdb, ntsd es capaz de depurar tanto aplicaciones de consola como aplicaciones gráficas.
pdbcopy.exe Una utilidad para eliminar símbolos privados de un archivo de símbolos, control sobre los símbolos públicos incluidos en el archivo de símbolos.
remote.exe Utilidad para depuración remota y control remoto de cualquier depurador de consola KD, CDB y NTSD. Le permite ejecutar todos estos depuradores de consola de forma remota.
rtlist.exe Visor de tareas remoto. La utilidad se utiliza para enumerar los procesos en ejecución a través del proceso del servidor DbgSrv.
symchk.exe Utilidad para descargar símbolos de Microsoft Symbol Server y crear una caché de símbolos local.
symstore.exe Utilidad para crear una red o almacenamiento local de símbolos (2 niveles / 3 niveles). Un almacén de símbolos es un directorio especializado en disco que se crea de acuerdo con una estructura determinada y contiene símbolos. En el directorio raíz de símbolos, se crea una estructura de subcarpetas con nombres idénticos a los nombres de los componentes. A su vez, cada una de estas subcarpetas contiene subcarpetas anidadas con nombres especiales que se obtienen mediante el hash de archivos binarios. La utilidad symstore escanea las carpetas de componentes y agrega nuevos componentes al almacén de símbolos, desde donde pueden ser recuperados por cualquier cliente. Se dice que el almacén simbólico se usa para obtener símbolos de un almacenamiento de nivel 0 y colocarlos en un almacenamiento de 2 niveles / 3 niveles.
tlist.exe Visor de tareas. Una utilidad para enumerar todos los procesos en ejecución.
umdh.exe Utilidad de almacenamiento dinámico de volcado en modo de usuario. Utilidad para analizar los montones (heap) del proceso seleccionado. Le permite mostrar varias opciones para el montón.
usbview.exe Visor USB. Utilidad para ver Dispositivos USB conectado a la computadora.
vmdemux.exe Demultiplexor de máquina virtual. Crea múltiples canalizaciones con nombre para una sola conexión COM. Los canales se utilizan para depurar varios componentes de la máquina virtual.
windbg.exe Depurador de modo de usuario y modo de kernel de GUI.

Android Debug Bridge (adb) es programa de consola que te permitirá depurar dispositivos móviles en Android, así como emuladores.

Descripción

Esta utilidad simplifica enormemente la instalación y depuración de aplicaciones y también proporciona acceso al shell de Unix. Este último se puede utilizar para ejecutar los comandos necesarios en el dispositivo. Entre otras cosas, el programa se puede utilizar para desbloquear un teléfono inteligente con el modo de depuración habilitado. Sin embargo, debe tenerse en cuenta que Android Debug Bridge es compatible con cualquier dispositivo Android, siempre que el fabricante no haya bloqueado la funcionalidad requerida.

El programa incluye tres componentes:

  • Cliente. Funciona en la PC del desarrollador, envía comandos. Para llamar al cliente, puede usar el comando apropiado en la terminal.
  • Demonio (adbd). Ejecuta comandos en el dispositivo. Funciona en segundo plano en todos los dispositivos.
  • Servidor. Gestiona la comunicación entre el cliente y el demonio. Funciona en segundo plano en la computadora del desarrollador.

Características de ADB:

  • Ver una lista de dispositivos conectados y compatibles.
  • Ver registros.
  • Copie y transfiera datos y archivos entre dispositivos.
  • Instalación y desinstalación de aplicaciones.
  • Borrando y sobrescribiendo la sección de datos.
  • Y también mucho más.

Desde nuestro sitio puede descargar Android Debug Bridge de forma gratuita, sin registro y sin SMS.

Capturas de pantalla

Ejecute Debug.exe, un programa para inspeccionar y depurar archivos ejecutables de MS-DOS. Comando ejecutado sin parámetros depurar inicia el programa Debug.exe y muestra un símbolo del sistema depurar, representado por un guión (-).


1)
Inicie Virtual PC 2007 con una imagen de Windows XP. Ponga el sistema operativo en modo de línea de comandos.

Inicio -> Ejecutar -> Ingrese cmd y presione Enter.


2)
Obtenga y confirme la ayuda para las opciones del comando de depuración

En la consola: ingrese debug, luego (?).

Lista corta todos los equipos:

A (ensamblar) - Traducir instrucciones de montaje a código máquina. La dirección predeterminada es CS: 0100h.

C (comparar) - Comparación de los contenidos de dos áreas de memoria. El valor predeterminado es DS... El comando especifica la longitud de los segmentos o el rango de direcciones.

D (volcado) - Salida del contenido del área de memoria en formatos hexadecimal y ASCII. El valor predeterminado es DS... Se puede especificar la longitud o el rango.

E (entrar) - Introducción de datos o instrucciones del código de máquina en la memoria. El valor predeterminado es DS.

F (relleno) - Llenar el área de la memoria con datos de la lista. El valor predeterminado es DS... Se pueden utilizar tanto la longitud como el alcance.

G (ir) - Ejecución del programa en lenguaje máquina depurado hasta el punto de interrupción especificado. El valor predeterminado es DS... En este caso, uno debe asegurarse de que IP contiene una dirección válida.

H (hexadecimal) - Cálculo de la suma y diferencia de dos valores hexadecimales.

Yo (entrada) - Lectura y salida de un byte desde el puerto.

L (carga) - Carga de un archivo o datos de los sectores del disco en la memoria. ... Defecto - CS: 100h... El archivo se puede especificar usando el comando norte o una discusión al inicio debug.exe.

M (mover) - Copiar el contenido de las celdas de memoria; el valor predeterminado es DS

N (nombre) - Especificar un nombre de archivo para los comandos L (CARGAR) y W (ESCRIBIR).

O (salida) - Envío de un byte al puerto de salida.

P (continuar) - Seguir instrucciones CALL, LOOP, INT (bucle, interrupción, procedimiento) o una declaración de cadena con prefijo repetible REPnn pasando a la siguiente instrucción.

Q (salir) - Finalización del trabajo debug.exe... Sin guardar el archivo de prueba.

R (registro) - Salida del contenido de los registros y la siguiente instrucción.

S (buscar) - Buscar en la memoria los símbolos de la lista. El valor predeterminado es DS... Se pueden especificar tanto la longitud como el rango.

T (rastro) - Ejecución paso a paso del programa. Como en el equipo PAG, el valor predeterminado es el par CS: IP... Pero para realizar interrupciones, es mejor usar el comando PAG.

U (desmontar) - Código de la máquina de desmontaje. El par predeterminado es CS: IP.

W (escribir) - Escribir un archivo desde debug.exe al disco. Es imperativo especificar el nombre del archivo con el comando norte si no se ha cargado.


3)
Obtenga y confirme volcados de áreas características de RAM y ROM

Escribamos el comando R.

Registros Cs, DS, ES, SS en este momento se inicializan la dirección del prefijo de segmento de programa de 256 bytes, a área de trabajo en la memoria comenzará con direcciones de este prefijo + 100h.

Reglas del conjunto de instrucciones:

A) B debug.exe las letras no distinguen entre mayúsculas y minúsculas.

B) Los espacios en los comandos se utilizan solo para separar parámetros.

C) Los números ingresados ​​deben estar en notación hexadecimal, y sin letra final h.

D) El segmento y el desplazamiento se escriben con dos puntos, en el formato segmento: desplazamiento.


4)
Ver área de memoria.

Mando D, le permite ver el contenido de áreas de memoria individuales.
Comprobemos el tamaño de la memoria disponible para trabajar. Para hacer esto, presentamos: d 40:13 y Enter.
Los primeros dos bytes que aparecen en la pantalla contienen el tamaño de la memoria en kilobytes y hexadecimal, con los bytes en orden inverso. Tenemos esto: 8002 0280640 (C)

  • La dirección del primer byte que se muestra desde la izquierda en el formato segmento: desplazamiento.
  • La representación hexadecimal del párrafo (16 bytes) comenzando en el byte indicado al principio de la línea.
  • Caracteres del mismo párrafo en formato ASCII.


4)
Comprobación de puertos serie y paralelo.


Los primeros 16 bytes del área de datos del BIOS contienen las direcciones de los puertos serie y paralelo. Los primeros ocho bytes impresos indican las direcciones de los puertos serie COM1-COM4. Los siguientes 8 bytes indican las direcciones de los puertos paralelos LPT1-LPT4. Dirección del puerto 78 03 - escrita al revés.


5)
Comprobación del estado del registro del teclado.


En el campo de los datos BIOS por la dirección 417h se ubica el primer byte, que almacena el estado del registro del teclado.


6)
Verificación de la fecha de producción del BIOS.


Información de copyright para BIOS incrustado en BIOS ROM por la dirección FE00: 0... La línea de derechos de autor se puede encontrar fácilmente en ASCII-secuencia, y el número de serie tiene la forma de un número hexadecimal. En la pantalla vemos un número de computadora de siete dígitos y una fecha de copyright. Sin embargo, la línea de copyright puede ser larga y no encajar en el área de la memoria de salida. En este caso, solo debe ingresar nuevamente D.

La fecha también se registra en BIOS ROM comenzando desde la dirección FFFF: 5... Después de ejecutar el comando correspondiente en ASCII-secuencia contendrá esta fecha, escrita en el formato mm / dd / aa.


7)
Un ejemplo de códigos de máquina.


Consideremos la creación de un programa en lenguaje máquina, su representación en memoria y los resultados de su ejecución. Comando del depurador A (ensamblar) traduce DEPURAR en el modo de recibir comandos de ensamblador y traducirlos a códigos de máquina.

Ahora que el programa está en la memoria, intentemos controlar su ejecución. Primero, revisemos el estado actual de los registros y banderas, para esto ingresamos el comando R.


IP- un registro que contiene el desplazamiento de dirección del siguiente comando que se ejecutará, en relación con el segmento de código Cs en procesadores de la familia x86.

Registrarse IP asociado con Cs como CS: IP, dónde Cs es el segmento de código actual y IP- el desplazamiento actual relativo a este segmento.

Registrarse IP es un registro de puntero de 16 bits. Además, los registros de este tipo incluyen SP (Puntero de pila- puntero de pila) y BP (Puntero base- índice básico).

Grabación CXpasó con éxito y es igual a 8. Los segmentos se inicializaron DS, ES, SS, Cs la misma dirección. Registrarse IP contiene 0100 , lo que indica que las instrucciones se están ejecutando con un desplazamiento de 100 h desde CS (comenzamos con eso).

Sentido

Descripción

Sin desbordamiento

Dirección hacia arriba o hacia la derecha

Resolución de interrupción

Signo positivo

Valor distinto de cero

Sin transferencia adicional

Extraña palabra

0 B16 - la dirección del segmento de código.
  • El código de máquina correspondiente a esta instrucción ( B025).
  • La instrucción en sí, escrita en ensamblador ( MOV A L,25 ).

  • 8)
    El comando del depurador U (Desmontar) muestra los códigos de máquina para las instrucciones de montaje.


    Ejecutémoslo. Es necesario informar al depurador de las direcciones del primer y último comando que necesitan ser visualizados (tenemos 100 y 107). Las instrucciones en el rango especificado aparecerán en lenguaje ensamblador, en códigos de máquina, así como la dirección de cada instrucción. Ejecutemos el programa paso a paso usando el comando T.

    Usando el comando por segunda vez T, seguimos las instrucciones MOV... El código de máquina del operando de instrucción es 00D8... La operación suma Alabama Para licenciado en Derecho... Para salir, ingrese Q... Y nuevamente desmontamos lo creado testpi.com.


    9)
    Copie BIOS (С000: 0 ... FFFF: F) a un archivo y guárdelo para un análisis posterior.


    Cambiar o copiar código BIOS puede violar los derechos de autor del fabricante BIOS. BIOS se puede copiar o modificar solo para uso personal, no para distribución. Procedimiento de copia típico BIOS usando el programa DEPURAR debajo. Este procedimiento guardará todo el segmento de 64 KB de la dirección F000: 0000h sobre F0000: FFFFh.


    Conclusiones:

    • debug.exese puede usar para monitorear y depurar programas de ensamblaje y código de máquina.
    • debug.exele permite rastrear un programa, establecer puntos de interrupción, ver áreas de memoria, ingresar programas directamente en la memoria de la computadora.
    • debug.exerepresenta programas descargables como programas .COM.
    • debug.exeacepta solo números hexadecimales.
    • debug.exeno distingue entre mayúsculas y minúsculas.

    DOS Debug es una aplicación de depuración que mejora la funcionalidad del comando MS DEBUG original. Al ejecutarse solo en arquitecturas de computadora de 32 bits, desempeña el papel de ensamblador y desensamblador, proporcionando a los programadores una forma de diagnosticar COM y otros archivos ejecutables.

    El paquete incluye un binario destinado a depurar aplicaciones de 16 bits (DEBUG.COM), así como una versión modificada llamada DEBUGX.COM, que es compatible con aplicaciones de 16 y 32 bits que se ejecutan en modo protegido (habilitado para DPMI ).

    La aplicación se ejecuta en la consola de comandos, lo que le permite ver una lista de todos los comandos disponibles accediendo a la sección "Ayuda".

    Entre las características adicionales que trae DOS Debug, puede encontrar mejoras en el ensamblador y desensamblador (que pueden notificarle en caso de que se detecten incompatibilidades de procesador), soporte para FPU Opcodes, CPU 80386+ y, como tal, nombres de registro de 32 bits.

    Además, puede actuar como una aplicación de volcado hexadecimal y agrupa opciones para analizar el contenido de la memoria, comparar o completar un rango de direcciones, mostrando la cadena MCB (bloque de control de memoria de DOS). Otros comandos le permiten acceder a determinadas secciones del disco, puertos y sectores de memoria o establecer el nombre de un programa.

    DEBUG.COM se ejecuta como un programa de 16 bits, lo que significa que solo puede actuar en aplicaciones de 16 bits, pero su versión mejorada (DEBUGX.COM) también permite la depuración de programas DPMI de 32 bits.

    Destinado a programadores experimentados, DOS Debug proporciona una utilidad que puede reemplazar el comando MS DEBUG. Puede procesar paquetes DPMI de 16 y 32 bits e incluye una descripción detallada de la función en la documentación, lo que permite comprender fácilmente lo que hace cada comando.