Beruflich Dokumente
Kultur Dokumente
DEBUG
Bug" significa fallo, defecto en un programa;
"debug" significa depurar (escrutar y eliminar
fallos).
La palabra ha quedado como verbo (depurar), de la
que han derivado otras. Por ejemplo: "Debugger"
(depurador).
Por extensin, todos los programas y utilidades
que sirven para escudriar los datos y el cdigo a
bajo nivel, se identifican genricamente con esta
denominacin.
En ingls
-?
assemble A [address]
compareC range address
dump D [range]
enter E address [list]
fill F range list
go G [=address] [addresses]
hex H value1 value2 (Learn 2's Complement!)
input I port load L [address] [drive] [firstsector] [number]
Move M range address
name N [pathname] [arglist]
output O port byte
proceed
P [=address] [number]
quit
Q . . . . . . . . . (Learn this first!)
register
R [register]
search
S range list
trace
T [=address] [number]
unassemble
U [range]
write
W [address] [drive] [firstsector] [number]
Comando R (Register)
Este comando nos permite examinar o modificar los contenidos de los
registros internos de la CPU del 8086
La sintaxis es:
-R [NOMBRE DE REGISTRO] .....nos despliega los contenidos del registro
especificado
-R ...............nos despliega los contenidos de todos los regisTros de la cpu
IP
0CD5
0CD5
0CD5
0CD5
CS
DS
SS
ES
0000
0000
0000
0000
AX
BX
CX
DX
FFEE
0000
0000
0000
SP
BP
SI
DI
0000
Flags
MEMORIA
MEMORIA
0CD5
Segmento
Segmentode
deCdigo
Cdigo
Segmento
de
Segmento deDatos
Datos
Segmento
Segmentode
deStack
Stack
Segmento
SegmentoExtra
Extra
Activos
Activos
(64kbyte)
(64kbyte)
FFFFFH
En este caso el comando solo muestra una lnea porque ha alcanzado el final
de la memoria. Puede verse que la fecha de la BIOS del sistema ocupa las
ltimas posiciones.
-E DS:200 ASCII
-D DS:200 204
0CDE:0200 41 53 43 49 49
Comando S ("Search").
Existen dos sintaxis alternativas:
S [direccin-de-inicio] [L longitud-a-explorar] [contenido-a-buscar]
S [direccin-de-inicio] [direccin-final L] [contenido-a-buscar]
El contenido a buscar debe darse en hexadecimal o entre comillas si es un
texto ASCII.
Por ejemplo:
Se desea ver algunas caractersticas de la BIOS en un equipo IBM. Se que
estos datos se alojan a partir de la posicin F000:0000 hasta el final de la
memoria. Es decir, una longitud de 64 Kbytes (FFFF) a partir de la posicin de
inicio, y que seguramente, los datos buscados estarn cerca de la identificacin
de la propia BIOS (la cadena "IBM"). Por lo que utilizo la siguiente sintaxis:
-S F000:0000 L FFFF "IBM"
Comando S ("Search").
y obtendramos la siguiente salida:
F000:3A0C
F000:3A70
F000:3B13
F000:4839
F000:48BA
F000:492A
F000:499A
F000:4A0A
con las direcciones donde se ha encontrado la
ocurrencia buscada
El debug puede aceptar entradas desde un fichero "Script", que puede ser un simple fichero de
texto ASCII en el que cada comando est separado del anterior por un INTRO. Despus del ltimo,
que debe ser una "Q" para salir de debug, es conveniente dejar una lnea en blanco pulsando
INTRO dos veces.
Las lneas pueden contener comentarios. Cualquier cosa a partir del carcter punto y coma (;) hasta
el final de la lnea, ser ignorado.
; esto es un comentario
D ; aqu se mostrar algo...
Suponiendo que tengamos un fichero "Script" de nombre Ordenes.txt, puede ser utilizado como
entrada para debug mediante un comando de redireccin en la siguiente forma:
DEBUG < Ordenes.txt
Tambin puede conseguirse que el programa redireccione la salida hacia un fichero que puede ser
inspeccionado ms tarde. Aunque tiene la dificultad de tener que trabajar "a ciegas", puede ser de
utilidad en determinadas circunstancias. Por ejemplo, cuando se desea un volcado de determinadas
zonas de la memoria. En el caso anterior podra obtenerse un fichero Result.txt con el siguiente
comando:
DEBUG < Ordenes.txt > Result.txt