|
 |
Il Processore e il Debugger |
DEBUG 3/22
[31 di 60] |
 | L'ambiente Debug è
senz'altro spartano, essenziale: i detrattori fanno di questa caratteristica
il suo limite ma, preferendogli sofisticati ambienti di debugging, come il TurboDebug
della Borland o il CodeView della
Microsoft. |
 | Personalmente ritengo che la sua semplicità sia la sua
forza;....io lo amo alla follia... |
 | La verità è che chi lo conosce non può non usarlo; il debugger non è solo il punto
d'inizio, un modo per entrare nell'ambiente; ... qualche volta è
l'ultima spiaggia... |
 | Dopo essere entrati in Debug
il comando ? mostra la forza di questo
ambiente (tutti i comandi si danno digitandone la lettera o la stringa dopo
il prompt del debug, cioè dopo il trattino). |
 | Il Debug.exe in
dotazione al Dos mostra questo Help:
C:\Arch-Lab\Lavoro>C:\WINDOWS\COMMAND\DEBUG
-?
Assembla A [indirizzo]
Confronta C intervallo indirizzo
Dump D [intervallo]
Immetti E indirizzo [elenco]
Riempi F intervallo elenco
Vai G [=indirizzo] [indirizzi]
Esadecimale H valore1 valore2
Input I porta
Carica L [indirizzo] [unità] [primosettore] [numero]
Muovi M intervallo indirizzo
Nome N [nomepercorso]
[elencoargomenti]
Output O porta byte
Procedi P [=indirizzo] [numero]
Esci Q
Registro R [registro]
Cerca S intervallo elenco
Traccia T [=indirizzo] [valore]
Disassembla U [intervallo]
Scrivi W [indirizzo] [unità] [primosettore] [numero]
Alloca memoria espansa
XA [n. pagine]
Rilascia memoria espansa
XD [handle]
Mapping pagine di memoria espansa XM [pagLog] [pagFis] [handle]
Visualizza stato memoria espansa XS |
|
 | Il SymDeb.exe,
più ricco del primo presenta invece il seguente Menu (qui proposto in forma
rielaborata):
C:\Arch-Lab\Lavoro>DEBUG
Microsoft (R) Symbolic Debug Utility Version 4.00
Copyright (C) Microsoft Corp 1984, 1985. All rights reserved.
Processor is [80286]
-?
A [<address>] ................... - assemble
BC[<bp>] ........................ - clear breakpoint(s)
BD[<bp>] ........................ - disable breakpoint(s)
BE[<bp>] ........................ - enable breakpoint(s)
BL[<bp>] ........................ - list breakpoint(s)
BP [bp] <address> ............... - set breakpoint
C <range> <address> ............. - compare
D[type][<range>] ................ - dump memory
E[type] <address> [<list>] ...... - enter
F <range> <list> ................ - fill
G [=<address> [<address>...]] .. - go
H <value> <value> ............... - hexadd
I <value> ...................... - input from port
K [<value>] ..................... - stack trace
L [<addr> [<drive><rec><rec>]] .. - load
M <range> <address> ............ - move
N <filename> [<filename>...] .... - name
O <value> <byte> ................ - output to port
P [=<address>] [<value>] ........ - program step
Q .............................. - quit
R [<reg>] [[=] <value>] ......... - register
S <range> <list> ................ - search
S {-|&|+} ....................... - source level debugging
T [=<address>] [<value>] ........ - trace
U [<range>] ......................- unassemble
V [<range>] ..................... - view source lines
W [<address> [<drive><rec><rec>]] - write
X [?] <symbol> .................. - examine symbols(s)
XO<symbol> .......................- open map/segment
Z <symbol> <value>
? <expr> ........................ - display expression
! [dos command] ................. - shell escape
. ............................... - display current source line
\ ............................... - screen flip
>} <device/file> ................ - Redirect output
<{ <device/file> ................ - Redirect input
=~ <device/file> ................ - Redirect both
\ ............................... - screen flip
* <string> ...................... - comment
<expr> ops: + - * / : not seg off by wo dw poi port wport mod and xor or
<type> : Byte, Word, Doubleword, Asciz, Shor3al, Longreal, Tenbytereal |
|
 | Molti di questi comandi sono di uso piuttosto raro e non
strettamente necessario. |
 | Alcuni comandi del symbolic debugger non
sono previsti dal debugger del Dos: tra
questi alcuni servono specificatamente in presenza del pacchetto originale,
che prevede la possibilità di coinvolgere addirittura i simboli definiti
nel programma sorgente... |
 | Nelle pagine seguenti ci occuperemo di quelli
indispensabili per il collaudo degli eseguibili, tralasciando di entrare nel
merito dei comandi troppo particolari. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|