FreeDOS help system (hhstndrd 1.0.8 fr)[debug]

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" DÉPLACER : 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. DÉFINIR 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. DÉSASSEMBLAGE : 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. PROCÉDER : 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 : ENTRÉE : 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 numéro 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 (C) 2003 Robert Platt, mis à jour en 2008 par W. Spiegl. Traduit en 2020 par Berki Yenigün. Ce fichier est dérivé de FreeDOS Spec Command HOWTO. Voyez le fichier H2Cpying pour les conditions de copie.