Commande : debug
DEBUG est un clone de la commande DEBUG de MS-DOS. Certaines choses
mineures ne sont pas impl‚ment‚es. DEBUG ne supporte pas seulement les
registres et les jeux d'instruction 8086/8088 et 8087 mais aussi les
registres et jeux d'instruction jusqu'au processeur PentiumPro - sauf
les extensions MMX.
DEBUG est un outil DOS relativement avanc‚ mais il a de nombreuses
utilisations. Par exemple, il peut ˆtre utilis‚ pour :
* trouver des bugs dans les programmes,
* cr‚er des programmes en partant du code assembleur,
* inspecter et ‚diter des fichiers binaires.
Syntaxe :
DEBUG [[lecteur:][chemin]nomdefichier [listearg]]
[lecteur:][chemin]nomfich Sp‚cifie le fichier que vous souhaitez
tester. Il n'est pas n‚cessaire que ce
soit un ex‚cutable - ce pourrait ˆtre un
binaire ou un fichier texte. Comme il
peut s'agit de n'importe quel fichier,
l'extension doit ˆtre sp‚cifi‚e.
listearg Sp‚cifie les informations de ligne de
commande requises par le fichier que
vous souhaitez tester.
Voyez Ex‚cution de programmes ci-dessous
pour plus d'informations sur le lancement
d'ex‚cutables.
Une fois que Debug est lanc‚, l'invite de commandes de Debug
s'affiche. Entrez Q pour quitter Debug et ? pour une liste de
commandes.
Options :
Q Quitter
? Aide
Inspection et dition de la m‚moire :
COMPARER :
C plage d'adresse Compare deux plages de m‚moire et affiche les
diff‚rences. Seule l'adresse de d‚part de la
seconde plage est requise, Debug supposera que
la seconde plage aura la mˆme taille que la
premiŠre.
Par exemple :
C 100,110 200
comparera la plage 100,110 to 200,210.
DUMP :
D [range] Affiche le contenu d'une plage de m‚moire. Si
aucune plage n'est sp‚cifi‚e, dump affichera
128 octets, d‚marrant l… o— le dernier dump
s'est termin‚ ou au d‚but du fichier charg‚.
DM Affiche la chaŒne de bloc de contr“le de la
m‚moire DOS (MCB) et le PSP actuel.
ENTRER :
E adresse [liste] crit sur une partie de la m‚moire, commen‡ant
l'adresse et avec la liste des octets. Pour
entrer une chaŒne de texte, mettez-le entre
des guillemets anglais.
Par exemple :
E 100 "Salut !"
REMPLIR :
F plage liste crit sur une plage de la m‚moire avec une liste
r‚p‚titive d'octets. Par exemple, pour mettre une
plage de m‚moire … z‚ro, vous pourriez mettre
E 100,110 0
et pour mettre "brumbrum" sur une plage de
m‚moire :
E 100,107 "brum"
DPLACER :
M plagesource adressedest
Copie la plage plagesource vers une autre plage
qui d‚marre … adressedest.
RECHERCHER :
S plage liste Recherche toutes les occurrences de la liste
d'octets dans la plage sp‚cifi‚e. L'adresse de
d‚marrage de chaque occurrence est affich‚e.
Calcul de nombres en hexad‚cimal :
HEX
H valeur1 valeur2 Affiche deux nombres,
le premier ‚tant valeur1+valeur2
le second ‚tant valeur1-valeur2.
H peut g‚rer les valeurs dword.
Chargement et sauvegarde des fichiers :
CHARGEMENT D'UN PROGRAMME OU D'UN FICHIER :
L [adresse] Charge le programme.
L adresse lecteur secteur num‚ro
Charge les secteurs.
DFINIR LE NOM :
N [[lecteur:][chemin]nomprog [listearg]]
D‚finit le nom pour le fichier/programme actuel.
CRIRE UN PROGRAMME OU UN FICHIER :
W [adresse] crit le programme/fichier actuel sur le disque.
Utilisez N pour changer le nom si vous ne
souhaitez pas ‚craser le fichier original.
W adresse lecteur secteur num‚ro
crit les secteurs.
Assemblage et d‚sassemblage :
ASSEMBLAGE :
A [adresse] Assemble.
DSASSEMBLAGE :
U [plage] D‚sassemble.
MODE 80x86 :
M[r‚glage] Le processeur actuel (pour les avertissements
d'assembleur et de d‚sassembleur, ci-dessus)
peut ˆtre d‚clar‚ comme ‚tant un autre
processeur avec les commandes suivantes :
m0 D‚clare que le processeur actuel est
un 8088
m1 D‚clare un 80186
m2 D‚clare un 286
m3 D‚clare un 386
m4 D‚clare un 486
m5 D‚clare un Pentium
m6 D‚clare un Pentium Pro
MC D‚clare l'existence d'un coprocesseur
math‚matique.
MNC D‚clare l'absence d'un coprocesseur math‚matique
MC2 D‚clare que le coprocesseur math‚matique est
un 287 (valide seulement si le processeur
actuel est un 386)
M? (versions anciennes seulement) : affiche le type
de processeur actuellement d‚clar‚
M Affiche le type de processeur actuellement
d‚clar‚
Ex‚cution d'un programme :
ALLER · (GO) :
G [=adresse] [points d'arrˆt]
D‚marre l'ex‚cution du programme charg‚ ou du
code machine … l'adresse sp‚cifi‚e. L'ex‚cution
est suspendue aux adresses de point d'arrˆt,
vous permettant d'inspecter la m‚moire, etc.
PROCDER :
P [=adress] [nombret]
Proc‚de … l'ex‚cution par ‚tapes.
REGISTRE :
R [registre [valeur]]
Affiche tous les registres du processeur, ou
affiche ou d‚finit un registre particulier.
Accepte les noms de registre 32 bit (pour les
processeurs 80386+).
RN Affiche l'‚tat du registre FPU. DEBUG
n'affichera que les valeurs brutes hexad‚cimales
des registres, alors que DEBUGX affichera les
valeurs au format virgule flottante.
RX Bascule entre l'affichage des registres 8086 et
80386 (pour les processeurs 80386+).
TRACE :
T [=adresse] [num‚ro]
Trace
TM [0|1] D‚finit le mode de commande de tra‡age,
0=process INTs (valeur par d‚faut),
1=single-step INTs (le mode compatible
avec MS-DOS).
Port E/S :
ENTRE :
I port Entr‚e depuis un port
IW port Entr‚e depuis un port WORD
ID port Entr‚e depuis un port DWORD
Les valeurs DWORD n‚cessitent un processeur
80386+.
SORTIE :
O port value Sortie vers un port
OW port valeur Sortie vers port WORD
OD port valeur Sortie vers un port DWORD.
Les valeurs DWORD n‚cessitent un processeur
80386+.
Commandes de m‚moire ‚tendue (EMS) (seulement si un EMM v4.0
est pr‚sent) :
XA nombre Attribue un descripteur EMS 'vide' avec
z‚ro page.
XD indicateur D‚sallouer.
XM indicateur page logique page physique
Mappe la m‚moire.
XR indicateur nombre R‚attribue un indicateur EMS handle.
XS Affiche l'‚tat.
X? Affiche l'aide sur la commande X.
Commentaires :
DEBUG utilise l'hexad‚cimal (base 16). Les adresses m‚moire sont
affich‚es sous la forme segment:offset, par ex. 0D00:0100. Les quatre
derniers chiffres hexad‚cimaux qui sp‚cifient l'offset du segment
peuvent aller de 0000 … FFFF, soit une plage de 64 Ko.
Les ex‚cutables avec l'extension .com ont toutes leurs donn‚es et leur
code en un segment. Donc pour les fichiers .com vous pouvez
g‚n‚ralement simplement ‚crire l'offset lors de la sp‚cification
d'adresses m‚moire avec les commandes DEBUG. DEBUG supposera le
segment du programme.
C'est aussi vrai pour les fichiers textes/binaires qui font moins
de 64K. Pour sp‚cifier une plage m‚moire, s‚parez deux adresses avec
une virgule.
Le chargement des fichiers .HEX n'est pas impl‚ment‚ dans DEBUG.
L'assembleur et le d‚sassembleur supportent toutes les instructions
document‚es publiquement pour les puces Intel jusqu'au Pentium Pro
(P6), sauf pour les instructions MMX. L'assembleur et le d‚sassembleur
vous informent si une instruction est inappropri‚e pour le processeur
actuel. Les FPU Opcodes sont pris en charge.
Exemples :
Cr‚ation d'une sauvegarde du secteur d'amor‡age (secteur nø 0 avec
512 octets =0x200) du lecteur C: (num‚ro 2) sur le fichier BOOT_C.BIN
sur disquette 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
Recherche avec DEBUG dans la RAM de la carte graphique de certains
caractŠres sp‚ciaux tels que l'ann‚e pour identifier la carte :
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
Voir ‚galement :
(emm386)
jemm386
jemmex
undelete
Copyright © 2003 Robert Platt, mis … jour en 2008 par W. Spiegl.
Traduit en 2020 par Berki Yenign.
Ce fichier est d‚riv‚ de FreeDOS Spec Command HOWTO.
Voyez le fichier H2Cpying pour les conditions de copie.