Conseils sur l'utilisation WDEB386

Traductions disponibles Traductions disponibles
Numéro d'article: 72379 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Le débogueur WDEB386 fourni dans le Kit de développement logiciel (SDK) Windows possède de nombreuses fonctionnalités très utiles ; cependant, il a également un certain nombre de défauts. Cet article décrit certaines des choses que WDEB386 peut et ne peut pas faire et fournit quelques conseils d'utilisation.

Plus d'informations

Raisons pour utilisation WDEB386

Le débogueur WDEB386 a été initialement écrit un outil interne Microsoft pour le développement et débogage de la couche de mode améliorées de Windows. Par conséquent, il conserve un certain nombre des fonctionnalités avancées qui sont nécessaires pour déboguer un multitâche, le système en mode protégé. En même temps, la nature de bas niveau de cet environnement de débogage peut être difficile et déroutant dans de nombreuses situations. Cependant, il existe plusieurs situations où ce débogueur est particulièrement utile ou même totalement nécessaire, pour diagnostiquer des problèmes tels que :

  • Par code plus bas niveau qui CVW ne sont pas suivre de suivi
  • Affichage de mémoire virtuelle/linéaire/physique
  • Affichage avancé 386 données processeur, telles que le DTG-LDT, IDT et tous le PMODE enregistre
  • Suivi des gestionnaires d'interruption de matériel
  • Le suivi de programmes (programme RÉSIDENT) terminer-et-rester-résidant en ou pilotes de périphériques MS-DOS
  • Affichage de l'état des machines virtuelles (VM)
  • Surveiller toutes les interruptions et exceptions en mode amélioré
  • Développement et débogage périphériques virtuels (intégrés) pour le mode amélioré
Ce n'est pas une liste exhaustive ; toutefois, il doit servent à illustrer des situations où le débogueur WDEB386 peut généralement être utilisé.

Rupture dans le débogueur au démarrage

Une option de ligne de commande qui a été pas mentionnée dans le chapitre 9 du manuel « Microsoft Software Development Kit de Windows » est l'option /B. Spécifiant /B sur la ligne de commande WDEB386 indique au débogueur pour interrompre l'exécution lors du démarrage de Windows. Cette option ne garantit pas que le débogueur s'arrête d'exécution sur la toute première instruction s'exécute. En fait, le débogueur ne pas arrête l'exécution jusqu'à une fois que Windows est chargée intégrés, antérieures à l'initialisation ;

Rupture dans le débogueur dans le Grand

Lorsque WDEB386 est en cours d'exécution, l'exécution du flux d'instruction en cours peut être interrompue avec la combinaison touche CTRL + ALT + SYS RQ. Il n'arrêtera pas l'exécution à l'emplacement précis de l'interruption de clavier ; l'exécution de s'arrêter à un emplacement dans le Gestionnaire de machine virtuelle (en VMM pour la DÉSACTIVER). La valeur de Registre de la machine virtuelle interruption d'inspecter à l'aide de la commande .VM (voir ci-dessous).

Sinon, points d'arrêt peuvent être définis avec la commande BP ou avec des instructions interruption assemblées directement dans le code. Soit un INT 1 ou 3 INT instruction utilisable. La différence est qu'un 1 INT va générer un message « interruption inattendue suivi » et arrêter dans l'instruction après le 1 INT. Ce message n'indique pas une condition d'erreur et peut être ignoré. Un 3 INT va rompre directement sur la INT et pas générer le message. Après qu'une instruction de point d'arrêt accès, vous pouvez plus la supprimer définitivement avec la commande « Z ». Cette commande remplace le langage machine INT par NOPs (aucune opération).

Également, si le matériel nécessaire est disponible, l'interruption nonmaskable (NMI) peut servir pour rompre dans le débogueur. Cela signifie généralement avoir un externe « STOP bouton connecté à une carte de débogage installée dans un emplacement de l'ordinateur de développement. Certains ordinateurs peuvent avez la possibilité de connexion d'un bouton Panneau frontal à la ligne NMI sur le bus machine. En tout cas, à l'aide de NMI présente l'avantage de pouvoir scinder en un ordinateur qui a « bloquée » avec interruptions désactivées.

Pour les programmeurs de développement de pilotes de périphérique virtuel (intégrés), la macro Debug_Out est disponible pour combiner l'envoi une chaîne ASCII Terminal Server pour le débogage et l'exécution d'un 1 INT, qui rompra le débogueur.

Utilisez WDEB386 en mode standard

Le débogueur WDEB386 est fourni essentiellement pour améliorées en mode débogage ; Cependant, il peut également être utilisé en mode standard sur un processeur 386. En général, opération du débogueur WDEB386 en mode standard est identique à celle de mode amélioré, sauf qu'un nombre de fonctionnalités est indisponible, particulièrement dans Windows 3.0.

Par exemple, le « / b « option pour rompre au démarrage n'est disponible en mode amélioré dans Windows 3.0. Il est disponible en mode standard sur Windows 3.1. Nombreuses commandes « point » (commandes le préfixe avec un point) sont fournies pour le mode amélioré et ne sont pas disponibles en mode standard.

Déterminer l'état du texte

Une fois le contrôle a été accordé au débogueur, le caractère d'invite utilisé fournira le statut en mode protégé du processeur. La liste suivante répertorie les caractères invite peuvent s'afficher et la signification de chaque :
    Character  Meaning
    ---------  -------

       >       The processor is in real mode
       #       The processor is in protected mode
       -       The processor is in virtual 8086 mode
				
le mode le processeur est en cours sera une indication de bonne de quel code est exécuté. Par exemple, si l'invite est un « - » (trait d'union), le flux d'instructions en cours est quelque part dans MS-DOS, le BIOS ou éventuellement dans un pilote de périphérique aux programmes résidents ou MS-DOS. Cela est dû au fait que la couche de mode améliorées de Windows doit basculer le processeur en mode V86 pour exécuter des fonctions de MS-DOS ou du BIOS. Sinon, si l'invite est un « # » (dièse), code en mode protégé, qui peut être une application basée sur Windows, DLL ou même la couche de mode amélioré--s'exécute.

Un des plus importants aspects de « savoir ce qui s'exécute » lorsque l'utilisation de WDEB386 sous Windows en mode améliorée est une détection de WIN386.EXE. Ce module est constitué du VMM (Gestionnaire de machine virtuelle) et tous les intégrés (périphériques virtuels). Ces composants sont désignés collectivement souvent comme « couche mode amélioré », « zéro code ROND » ou simplement « WIN386 ». Sous Windows 3.0 et 3.1 et Windows pour Workgroups, versions 3.0, 3.1 et 3.11, Si l'invite de débogueur est un caractère « # » et la valeur de l'historique des transactions CS est 0028h, cela signifie que l'ordinateur est arrêté dans WIN386.

Arrêt en WIN386 peut être ou non souhaitable. Par exemple, la capacité de WDEB386 à arrêter dans WIN386 permet aux développeurs VxD de étape single-via le VxD in question. Toutefois, une application ou un programmeur de pilote de périphérique utilisant WDEB386 en raison de son « protégé détection mode » ne peut-être aucun intérêt de ce que fait WIN386. Dans les cas, reconnaître le composant système associé du flux d'exécution actuel est une étape essentielle en utilisant WDEB386 efficacement.

Utilisant les commandes point

Probablement la partie plus intéressante (et déroutant) sur l'utilisation de WDEB386 concerne les commandes « point », qui sont des commandes précédés par une période. Un des causes de la confusion est que si la version de débogage de WIN386.EXE n'est pas installée, la plupart des commandes point sont indisponibles. Par exemple, si le message suivant s'affiche pendant l'exécution en mode amélioré Windows
Win386 ne pas chargé, ne déboguer pas version ou ne répond pas
Cela signifie probablement que la version commerciale de WIN386.EXE est installée. Pour plus d'informations sur l'installation de la version de débogage de WIN386, requête sur les mots :
prod(winddk) et wdeb386
En outre, ce message toujours apparaît si WDEB386 est utilisé lorsque Windows est en mode standard.

Commandes d'image de point

Un point de vue conceptuel, les commandes point sont des commandes "externes ou de commandes qui fonctionnent sur les structures de données et des opérations spécifiques à l'environnement Windows. Par exemple, la commande D (vidage) affiche des emplacements de mémoire comme s'être prévu à partir d'un débogueur, mais la commande « .DG » affiche des informations du tas global Windows dans beaucoup la même manière que l'application HEAPWALK.

La plupart des commandes .dx ne nécessitent pas la version de débogage de WIN386.EXE et est également disponible en mode standard. Le reste des commandes décrites dans cet article nécessitent la version débogage de WIN386.EXE et améliorées en mode d'opération. Une fois tout est installé correctement, le «.? " commande d'aide doit fournir une référence rapide en ligne des commandes point.

Une différence importante qui doit être effectué est la différence entre le K et les commandes « .DS ». La commande « K » est remonter la pile Windows tant que le débogueur est arrêté dans application basée sur Windows ou du code bibliothèque dynamic-link (DLL). Toutefois, si le débogueur est suivi par le biais d'un code WIN386, la commande « K » ne génère pas aucune sortie utile. Pour cette raison, la commande « .DS » a été fournie pour afficher la pile WIN386. C'est une autre démonstration de l'importance de « savoir ce qui s'exécute, » comme mentionné précédemment dans cet article.

Commandes de machine virtuelle point

WDEB386 a été initialement traitées pour déboguer la couche de mode améliorées de Windows ; par conséquent, il peut arriver dans lequel le débogueur est arrêté au milieu de WIN386. Par exemple, si l'exécution est interrompue à l'aide de CTRL + ALT + SYS RQ, l'ordinateur ne pas arrêter immédiatement à l'instruction qui était en cours d'exécution, mais plutôt à un point d'arrêt dans le code WIN386. Par conséquent, les registres généraux ne normalement contient tout ce qui sera de toute utilisation pour un développeur tente de déboguer un pilote ou une application.

Toutefois, l'état de fonctionnement de la machine virtuelle actuelle peut être affiché à l'aide des commandes .vx. Par exemple, « .VM » afficher les indicateurs d'état, enregistrer contenu, instruction en cours et une partie de la pile de la machine virtuelle actuelle. En tapant « .VL » génère une liste de tous les ordinateurs virtuels dans le système. Ces commandes peuvent servir à obtenir une vue d'ensemble de l'application, DLL, MS-DOS ou du BIOS état de l'exécution, opposition à l'état de WIN386.

Commandes de mémoire point

Les commandes .mx affichent des informations avancées sur l'état de la mémoire. La plupart des fonctions imprimer internes informations WIN386 dans un format plus lisible. Deux commandes qui sont utiles immédiatement sont « .ML » et « .MP ». Ces commandes convertissent adresses linéaires à physique et vice versa.

Point suivi commandes

Les commandes « .T » et « .S » fournissent pour conserver interruption suivi d'informations. Les entrées de suivi décrivent les interruptions sont produites, l'adresse de bloc de machine virtuelle et l'adresse instruction interrompu. Ces commandes peuvent être très utiles de suivi des problèmes (bogues) qui ne produisent pas Symptômes immédiates.

Commandes de périphérique de point

WIN386 et WDEB386 permettent d'un VxD individuel afficher des informations sur son propre état de fonctionnement. En règle générale, l'utilisateur peut demander cette débogage des informations à partir d'un VxD en tapant .Name à l'invite WDEB386, où « nom » est le nom de la VxD. Par exemple, tapez .VDMAD produit des informations sur l'état du périphérique virtuel DMA.

Émettre une commande de périphérique point entraîne en VMM pour la DÉSACTIVER envoyer un message « Debug_Query » au VxD. Le VxD n'est pas requis pour faire quoi que ce soit en réponse à ce message, et en fait intégrés de ne pas génère aucune sortie débogage. En général, sortie produite par intégrés de cette manière n'est pas documentée et est uniquement fourni dans un moyen de débogage le VxD en question. Les développeurs VxD peut-être souhaitez tirer parti de ce mécanisme pour afficher les structures de données importantes qui définissent l'état du périphérique virtuel.

Sommaire de commande point

Les commandes point sont répertoriées dans 9.6 section (page 9 48) du manuel « Microsoft Software Development Kit de Windows ». Un écran de référence rapide en ligne est disponible avec le «.? " commande.

Remarque : un numéro de commandes point n'est pas documenté dans le manuel d'outils du Kit de développement logiciel (SDK). Par exemple, le format de la commande de périphérique de point est décrit, mais le résultat réel généré par les périphériques virtuels spécifiques n'est accordée. Il existe plusieurs des raisons :

  • La sortie générée par les commandes point généralement pas est générée par le débogueur WDEB386, mais plutôt par les composants de WIN386. Ces composants sont en cours révisé et mis à jour plus dynamiquement que le débogueur, et donc les informations produites par ces composants sont susceptibles de changer.
  • La sortie est souvent très spécifiques d'informations sur le VxD lui-même et pas normalement serait utile dans une situation débogage standard.

Propriétés

Numéro d'article: 72379 - Dernière mise à jour: jeudi 22 juillet 2004 - Version: 1.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.0
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.1
Mots-clés : 
kbmt KB72379 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 72379
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com