Le débogueur orienté ligne DEBUG.EXEest une commande externe dans les systèmes d'exploitation tels que DOS , OS/2 et Windows (uniquement dans les versions 16 bits/32 bits ).
DEBUG peut agir comme un programme d'assemblage , de désassemblage ou de vidage hexadécimal permettant aux utilisateurs d'examiner de manière interactive le contenu de la mémoire (en langage assembleur , hexadécimal ou ASCII ), d'effectuer des modifications et d'exécuter de manière sélective des fichiers COM , EXE et d'autres types de fichiers. Il dispose également de plusieurs sous-commandes qui sont utilisées pour accéder à des secteurs de disque , des ports d'E/S et des adresses mémoire spécifiques .
Aperçu

DEBUG.COM(entre autres commandes) dans IBM PC DOS 1.0.
DEBUG.EXETraditionnellement, tous les ordinateurs et systèmes d'exploitation ont inclus une fonction de maintenance, utilisée pour déterminer si un programme fonctionne correctement. DEBUG a été écrit à l'origine par Tim Paterson pour servir cet objectif dans 86-DOS . Lorsque Paterson a commencé à travailler pour Microsoft au début des années 1980, il a emporté le programme avec lui. DEBUG faisait partie de DOS 1.00 et a été inclus dans MS-DOS / PC DOS et certaines versions de Microsoft Windows . Nommé à l'origine DEBUG.COM, l'exécutable a été renommé en DEBUG.EXEavec MS-DOS 3.2.
Windows XP et les versions ultérieures sont inclus DEBUGpour le sous-système MS-DOS afin de maintenir la compatibilité MS-DOS. Les commandes DOS 16 bits ne sont pas disponibles sur les éditions 64 bits de Windows.
Le débogage DOS MS-DOS/PC présente plusieurs limitations :
- Dans les modes d'assemblage/désassemblage, il ne prend en charge que 8086 opcodes.
- Il ne peut accéder qu'aux registres 16 bits et non aux registres étendus 32 bits.
- Lorsque la sous-commande « N » pour nommer les fichiers est utilisée, le nom de fichier est stocké à partir du décalage DS :5D jusqu'à DS:67 (la zone du bloc de contrôle de fichier de préfixe de segment de programme ), ce qui signifie que le programme ne peut enregistrer les fichiers qu'au format de nom de fichier FAT 8.3 .
Les paquets DEBUG améliorés incluent la commande DEBUG dans Novell DOS 7 , OpenDOS 7.01 et DR-DOS 7.02 et versions ultérieures, une réimplémentation de l'ancien débogueur d'instructions symboliques SID/SID86 de Digital Research , qui était fourni avec les anciennes versions de DR DOS . Il est entièrement compatible avec la syntaxe de ligne de commande DEBUG de MS-DOS/PC DOS, mais offre de nombreuses améliorations, notamment la prise en charge des opcodes 16 bits et 32 bits jusqu'au Pentium , un mode étendu (/X) avec des dizaines de commandes et sous-modes supplémentaires, une syntaxe de ligne de commande bien améliorée avec des macros définissables par l'utilisateur et des fonctions de débogage symbolique avec des registres nommés, des tables de symboles chargés , des opérations mathématiques et des conversions de base , ainsi qu'un désassembleur de commentaires . Certaines versions utilisaient également DPMS pour fonctionner comme un débogueur en mode protégé « furtif ».
La version FreeDOS de DEBUG a été développée par Paul Vojta et est sous licence MIT .
Il existe également une version clone 32 bits « DEBUGX » prenant en charge les programmes DPMI 32 bits . Andreas « Japheth » Grech, l'auteur de l' extendeur HX DOS , a développé des versions DEBUG améliorées de 0.98 à 1.25, et l'ancien développeur PC DOS Vernon C. Brooks a ajouté les versions 1.26 à 1.32.
Syntaxe
DEBUG [[lecteur :][chemin] nom de fichier [paramètres]]
Lorsque DEBUG est démarré sans aucun paramètre, l'invite DEBUG, un « - » apparaît. L'utilisateur peut alors entrer l'une des nombreuses sous-commandes d'une ou deux lettres, notamment « A » pour entrer en mode assembleur, « D » pour effectuer un vidage hexadécimal , « T » pour tracer et « U » pour désassembler (désassembler) un programme en mémoire. DEBUG peut également être utilisé comme interpréteur de « script DEBUG » en utilisant la syntaxe suivante.
DEBUG < filename
Un fichier de script peut contenir des sous-commandes DEBUG et des instructions en langage assembleur. Cette méthode peut être utilisée pour créer ou modifier des fichiers binaires à partir de fichiers batch .
Utilisation à des fins autres que le débogage
L'utilitaire DEBUG est utile pour éditer des fichiers binaires dans un environnement où seul DOS est installé sans rien d'autre. Il peut également être utilisé pour éditer des secteurs de disque, ce qui est une méthode de suppression des virus de secteur de démarrage.
Disponibilité
Bien que la documentation technique de la commande DEBUG ait été supprimée avec la sortie de MS-DOS 3.3, la commande a été conservée dans la distribution standard, contrairement à ce qui a été fait avec EXE2BIN .
Autres systèmes d'exploitation
Les systèmes d'exploitation
Intel
ISIS-II et iRMX 86 , DEC
TOPS-10 et TOPS-20 , THEOS/OASIS , Zilog
Z80-RIO , Stratus
OpenVOS , PC-MOS , et AROS fournissent également une DEBUGcommande.