Section courante

A propos

Section administrative du site

L'affichage de CodeView

L'affichage de l'écran du débogueur Microsoft CodeView peut apparaître dans deux modes différents : fenêtre et séquentiel. L'un ou l'autre mode fournit un environnement de débogage utile, mais le mode fenêtre est le plus puissant et le plus pratique des deux. Le débogueur CodeView accepte les commandes de fenêtre ou les commandes de boîte de dialogue. Les commandes de dialogue sont saisies sous forme de lignes de commande après du prompt CodeView (>) en mode séquentiel.

Vous souhaiterez probablement utiliser le mode fenêtre, si vous disposez du matériel pour le prendre en charge. En mode fenêtre, les menus déroulants, les touches de fonction et la prise en charge de la souris offrent un accès rapide aux commandes les plus courantes. Différents aspects du programme et de l'environnement de débogage peuvent être vus simultanément dans différentes fenêtres.

Le mode séquentiel est similaire au mode d'affichage des prédécesseurs du débogueur CodeView, l'utilitaire de débogage symbolique Microsoft (SYMDEB) et l'utilitaire DEBUG de DOS. Ce mode est requis si vous ne disposez pas d'un ordinateur compatible IBM PC, et il est parfois utile lors de la redirection de l'entrée ou de la sortie de la commande.

Utilisation du mode fenêtre

Les éléments de l'affichage CodeView indiqués dans l'image suivante ci-dessous incluent les éléments suivants :

  1. La fenêtre d'affichage montre le programme en cours de débogage. Il peut contenir du code source (comme dans l'exemple), des instructions en langage d'assemblage ou tout fichier texte spécifié.
  2. La ligne de localisation actuelle (la ligne suivante que le programme exécutera) est affichée en vidéo inverse ou dans une couleur différente. Cette ligne n'est pas toujours visible, car vous pouvez faire défiler les parties antérieures ou ultérieures du programme.
  3. Les lignes contenant des points d'arrêt précédemment définis sont affichées en texte de haute intensité.
  4. La fenêtre de dialogue est l'endroit où vous entrez les commandes de dialogue. Il s'agit des commandes avec arguments facultatifs que vous pouvez saisir au prompt CodeView (>). Vous pouvez faire défiler vers le haut ou vers le bas dans cette fenêtre pour afficher les commandes de dialogue précédentes et la sortie de la commande.
  5. Le curseur est une fine ligne clignotante indiquant l'emplacement auquel vous pouvez saisir des commandes à partir du clavier. Vous pouvez déplacer le curseur de haut en bas et le placer dans la boîte de dialogue ou dans la fenêtre d'affichage.
  6. La ligne de séparation affichage/dialogue sépare la fenêtre de dialogue de la fenêtre d'affichage.
  7. La fenêtre de registre affiche l'état actuel des registres et des drapeaux du processeur. Il s'agit d'une fenêtre facultative pouvant être ouverte ou fermée avec une touche ou avec la souris. Si l'option 386 est activée, une fenêtre de registre beaucoup plus large s'affiche, avec des registres de 32 bits. La fenêtre de registre affiche également l'adresse effective en bas de la fenêtre ; l'adresse effective indique l'emplacement réel d'un opérande dans la mémoire physique. Il est utile lors du débogage en mode assemblage.
  8. Les barres de défilement sont les barres verticales sur le côté droit de l'écran. Chaque barre de défilement a une flèche vers le haut et une flèche vers le bas que vous pouvez utiliser pour faire défiler l'affichage avec une souris.
  9. La fenêtre d'observation facultative affiche l'état actuel des variables ou expressions spécifiées. Il apparaît automatiquement chaque fois que vous créez des instructions de surveillance.
  10. La barre de menus affiche les titres des menus et des commandes que vous pouvez activer avec le clavier ou la souris. "Trace" et "Go" représentent des commandes ; les autres sont tous des menus.
  11. Les menus peuvent être ouverts en spécifiant le titre approprié dans la barre de menus. Sur l'exemple d'écran, le menu Watch a été ouvert.
  12. Le menu en surbrillance est une vidéo inverse ou une bande de couleur indiquant la sélection en cours dans un menu. Vous pouvez déplacer la surbrillance vers le haut ou vers le bas pour modifier la sélection actuelle.
  13. Le pointeur de la souris indique la position actuelle de la souris. Il s'affiche uniquement si une souris est installée sur votre système.
  14. Des boîtes de dialogue (non illustrées) s'affichent au centre de l'écran lorsque vous choisissez une sélection de menu nécessitant une réponse. La case vous invite à répondre et disparaît lorsque vous entrez votre réponse.
  15. Des boîtes de message (non illustrées) apparaissent au centre de l'écran pour afficher les erreurs ou d'autres messages.

Exécuter des commandes de fenêtre avec le clavier

Les commandes de débogage CodeView les plus courantes et toutes les commandes de gestion de l'affichage CodeView sont disponibles avec les commandes de fenêtre. Les commandes de fenêtre sont des commandes à une touche pouvant être saisies avec des touches de fonction, des combinaisons de touches Ctrl, des combinaisons de touches Alt ou les touches de direction du pavé numérique.

La plupart des commandes de fenêtre peuvent également être entrées avec une souris.

Déplacer le curseur avec les commandes du clavier

Les touches suivantes déplacent le curseur ou font défiler le texte vers le haut ou vers le bas dans l'affichage ou la fenêtre de dialogue :

Touche Fonction
F6 Déplace le curseur entre les fenêtres d'affichage et de dialogue. Si le curseur se trouve dans la fenêtre de dialogue lorsque vous appuyez sur la touche F6, il reviendra à sa position précédente dans la fenêtre d'affichage. Si le curseur se trouve dans la fenêtre d'affichage, il se déplacera vers sa position précédente dans la fenêtre de dialogue.
Ctrl+G Agrandit la taille de la boîte de dialogue ou de la fenêtre d'affichage. Cela fonctionne quelle que soit la fenêtre dans laquelle se trouve le curseur. Si le curseur se trouve dans la fenêtre d'affichage, la ligne de séparation de l'affichage/de la boîte de dialogue descendra d'une ligne. Si le curseur se trouve dans la fenêtre de dialogue, la ligne de séparation remontera d'une ligne.
Ctrl+T Réduit la taille de la boîte de dialogue ou de la fenêtre d'affichage. Cela fonctionne quelle que soit la fenêtre dans laquelle se trouve le curseur. Si le curseur se trouve dans la fenêtre d'affichage, la ligne de séparation de l'affichage/de la boîte de dialogue remontera d'une ligne. Si le curseur se trouve dans la fenêtre de dialogue, la ligne de séparation descendra d'une ligne. La touche déplace le curseur d'une ligne vers le haut dans la fenêtre d'affichage ou de dialogue.
Déplace le curseur d'une ligne vers le bas dans la fenêtre d'affichage ou de dialogue.
PgUp Fait défiler une page vers le haut. Si le curseur est dans la fenêtre d'affichage, les lignes source ou les instructions en langage assembleur défilent vers le haut. Si le curseur est dans la fenêtre de dialogue, le tampon des commandes saisies pendant la session défile vers le haut. Le curseur reste à sa position actuelle dans la fenêtre. La longueur d'une page est le nombre actuel de lignes dans la fenêtre.
PgDn Fait défiler une page vers le bas. Si le curseur est dans la fenêtre d'affichage, les lignes source ou les instructions en langage assembleur défilent vers le bas. Si le curseur est dans la fenêtre de dialogue, le tampon des commandes saisies pendant la session défile vers le bas. Le curseur reste à sa position actuelle dans la fenêtre. La longueur d'une page est le nombre actuel de lignes dans la fenêtre.
Home Fait défiler vers le haut du fichier ou du tampon de commandes. Si le curseur se trouve dans la fenêtre d'affichage, le texte défile jusqu'au début du fichier source ou des instructions du programme. Si le curseur se trouve dans la fenêtre de dialogue, les commandes défilent jusqu'en haut du tampon de commandes. Le haut du tampon de commandes peut être vide si vous n'avez pas encore entré suffisamment de commandes pour remplir le tampon. Le curseur reste à sa position actuelle dans la fenêtre.
End Fait défiler vers le bas du fichier ou du tampon de commandes. Si le curseur est dans la fenêtre d'affichage, le texte défile jusqu'à la fin du fichier source ou des instructions du programme. Si le curseur se trouve dans la fenêtre de dialogue, les commandes défilent jusqu'en bas du tampon de commandes et le curseur se déplace vers le prompt CodeView (>) à la fin du tampon.

Modification de l'écran avec les commandes du clavier

Les touches suivantes permettent de changer d'écran ou de passer à un autre écran :

Touche Fonction
F1 Affiche l'écran initial d'aide en ligne.
F2 Bascule la fenêtre de registre (Register). La fenêtre disparaît si présente, ou apparaît si absente. Vous pouvez également basculer la fenêtre de registre avec la sélection Register dans le menu View.
F3 Bascule entre les modes source, mixte et assemblage. Le mode source affiche le code source dans la fenêtre d'affichage, tandis que le mode assembleur affiche les instructions en langage de programmation assembleur 80x86. Le mode mixte affiche les deux. Vous pouvez également changer de mode avec les sélections Source, Mixed et Assembly du menu View.
F4 Passe à l'écran de sortie (Output). L'écran de sortie affiche la sortie, le cas échéant, de votre programme. Appuyez sur n'importe quelle touche pour revenir à l'écran CodeView.

Contrôle de l'exécution du programme avec les commandes clavier

Les touches suivantes définissent et effacent les points d'arrêt, tracent votre programme ou s'exécutent jusqu'à un point d'arrêt :

Touche Fonction
F5 Exécuter jusqu'au point d'arrêt suivant ou jusqu'à la fin du programme si aucun point d'arrêt n'est rencontré. Cette commande clavier correspond à la commande Go dialog lorsqu'elle est donnée sans paramètre de point d'arrêt de destination.
F7 Définit un point d'arrêt temporaire sur la ligne avec le curseur et s'exécute jusqu'à cette ligne (ou jusqu'à un point d'arrêt précédemment défini ou à la fin du programme si l'un ou l'autre est rencontré avant le point d'arrêt temporaire). En mode source, si la ligne ne correspond pas au code (par exemple, des déclarations de données ou des lignes de commentaire), le débogueur CodeView émet un avertissement et ignore la commande. Cette commande de fenêtre correspond à la commande de dialogue Go lorsqu'elle est donnée avec un point d'arrêt de destination.
F8 Exécute une commande Trace. Le débogueur CodeView exécute la ligne source suivante en mode source ou l'instruction suivante en mode assembleur. Si la ligne ou l'instruction source contient un appel à une routine ou une interruption, le débogueur commence à suivre l'appel (entre dans l'appel et est prêt à exécuter la première ligne ou instruction source). Cette commande ne tracera pas dans les appels de fonction DOS.
F9 Définit ou efface un point d'arrêt sur la ligne avec le curseur. Si la ligne n'a pas actuellement de point d'arrêt, un point d'arrêt est défini sur cette ligne. Si la ligne a déjà un point d'arrêt, le point d'arrêt est effacé. Si le curseur se trouve dans la fenêtre de dialogue, le débogueur CodeView émet un avertissement et ignore la commande. Cette commande de fenêtre correspond aux commandes de dialogue Breakpoint Set et Breakpoint Clear.
F10 Exécute la commande de pas de programme. Le débogueur CodeView exécute la ligne source suivante en mode source ou l'instruction suivante en mode assembleur. Si l'instruction IR de la ligne source contient un appel à une routine ou une interruption, le débogueur parcourt l'intégralité de l'appel (l'exécute jusqu'au retour) et est prêt à exécuter la ligne ou l'instruction après l'appel.

Vous pouvez généralement interrompre l'exécution du programme en appuyant sur Ctrl+Break ou Ctrl+C. Ces combinaisons de touches peuvent être utilisées pour quitter des boucles sans fin ou pour interrompre des boucles ralenties par les commandes Watchpoint ou Tracepoint. Les combinaisons de touches Ctrl+Break ou Ctrl+C peuvent ne pas fonctionner si votre programme a une utilisation spéciale pour l'une ou les deux de ces combinaisons de touches. Si vous disposez d'un IBM Personal Computer AT (ou d'un AT compatible), vous pouvez utiliser la touche System Request pour interrompre l'exécution indépendamment de l'utilisation par votre programme de Ctrl+Break et Ctrl+C.

Sélection dans les menus avec le clavier

Cette section explique comment effectuer des sélections dans les menus avec le clavier.

La barre de menus en haut de l'écran comporte onze titres : File, View, Search, Run, Watch, Options, Language, Calls, Help, Trace et Go. Les neuf premiers titres sont des menus et les deux derniers sont des commandes. Les titres Trace et Go sont principalement destinés aux utilisateurs de souris.

Les quatre étapes pour ouvrir un menu et faire une sélection sont décrites ci-dessous :

À tout moment pendant le processus de sélection d'un élément de menu, vous pouvez appuyer sur la touche Esc pour annuler le menu. Lorsqu'un menu est ouvert, vous pouvez appuyer sur la touche ou pour passer d'un menu à un menu adjacent ou à l'un des titres de commande de la barre de menus. Appuyer sur Enter sans saisir de caractères en réponse à une boîte de message annule également le menu.

Exécuter des commandes de fenêtre avec la souris

Le débogueur CodeView est conçu pour fonctionner avec la souris Microsoft (il fonctionne également avec certains périphériques de pointage compatibles). En déplaçant la souris sur une surface plane, vous pouvez déplacer le pointeur de la souris dans une direction correspondante sur l'écran. Les termes suivants font référence à la manière dont vous sélectionnez des éléments ou exécutez des commandes avec la souris :

Terme Définition
Point Déplacez la souris jusqu'à ce que le pointeur de la souris repose sur l'élément que vous souhaitez sélectionner.
Clic (Click) Appuyez et relâchez rapidement un bouton de la souris tout en pointant sur un élément que vous souhaitez sélectionner.
Glisser (Drag) Appuyez sur un bouton de la souris lorsque vous êtes sur un élément sélectionné, puis maintenez le bouton enfoncé tout en déplaçant la souris. L'élément se déplace dans le sens du mouvement de la souris. Lorsque l'élément que vous déplacez est là où vous le souhaitez, relâchez le bouton ; l'élément restera à cet endroit.

Le débogueur CodeView utilise deux boutons de souris. Les termes «clic droit», «clic gauche», «cliquez sur les deux» et «cliquez sur l'un ou l'autre» sont parfois utilisés pour désigner les boutons à utiliser. Lorsque vous faites glisser, l'un ou l'autre bouton peut être utilisé.

Changer l'écran avec la souris

Vous pouvez modifier divers aspects de l'affichage à l'écran en pointant sur l'un des éléments suivants, puis en cliquant ou en faisant glisser :

Éléments Action
Double ligne séparant les fenêtres d'affichage et de dialogue Faites glisser la ligne de séparation vers le haut pour augmenter la taille de la fenêtre de dialogue tout en diminuant la taille de la fenêtre d'affichage, ou faites glisser la ligne vers le bas pour augmenter la taille de la fenêtre d'affichage tout en réduisant la taille de la fenêtre de dialogue. Vous pouvez éliminer l'un ou l'autre complètement en faisant glisser la ligne vers le haut ou vers le bas (à condition que le curseur ne se trouve pas dans la fenêtre que vous souhaitez éliminer).
Flèche haut ou flèche bas sur le défilement Pointez et cliquez avec le bouton gauche sur l'une des quatre flèches des barres de défilement pour faire défiler vers le haut ou vers le bas. Si vous êtes dans la fenêtre d'affichage, le code source défile vers le haut ou vers le bas. Si vous êtes dans la fenêtre de dialogue, le tampon contenant les commandes de dialogue saisies au cours de la session défile vers le haut ou vers le bas. Cliquez sur le bouton gauche pour faire défiler vers le haut ou vers le bas une seule ligne à la fois. Appuyez sur le bouton gauche et maintenez-le enfoncé pour faire défiler en continu. Le défilement continu est plus facile à utiliser lorsque vous souhaitez faire défiler plus de quelques lignes. Le défilement s'arrête dès que vous relâchez le bouton de la souris.
Ascenseur à barre de défilement Chaque barre de défilement a un "ascenseur", étant un rectangle en surbrillance sur la barre pouvant être déplacé vers le haut ou vers le bas avec la souris. Dans la fenêtre d'affichage, l'ascenseur indique votre position relative dans le fichier source ; si vous êtes en mode mixte ou assembleur, l'ascenseur vous indique votre position dans le fichier exécutable par rapport aux instructions qui correspondent au fichier source. Vous pouvez vous déplacer rapidement dans le fichier source en faisant glisser l'ascenseur de la fenêtre d'affichage vers le haut ou vers le bas.

Dans la fenêtre de dialogue, la position de l'ascenseur n'a aucune importance. Pour remonter d'une page (dans l'affichage ou dans la fenêtre de dialogue), cliquez sur la barre de défilement n'importe où au-dessus de l'ascenseur. Pour descendre d'une page, cliquez sur la barre de défilement n'importe où sous l'ascenseur.

Contrôler l'exécution du programme avec la souris

En cliquant sur les éléments de souris suivants, vous pouvez définir et effacer des points d'arrêt, parcourir votre programme, exécuter jusqu'à un point d'arrêt ou modifier des bits de drapeau :

Éléments Action
Ligne source ou instruction Pointez et cliquez sur une ligne source en mode source ou sur une instruction en mode assemblage pour effectuer l'une des actions suivantes :
Bouton Résultat
Cliquez à gauche Si la ligne sous le curseur de la souris n'a pas de point d'arrêt, un point d'arrêt y est défini. Si la ligne a déjà un point d'arrêt, le point d'arrêt est supprimé. Les lignes avec des points d'arrêt sont affichées en texte de haute intensité.
Cliquez à droite Un point d'arrêt temporaire est défini sur la ligne et le débogueur CodeView s'exécute jusqu'à ce qu'il atteigne la ligne (ou jusqu'à ce qu'il atteigne un point d'arrêt précédemment défini ou la fin du programme si l'un est rencontré avant le point d'arrêt temporaire). Si vous cliquez sur une ligne ne correspondant pas au code (par exemple, une déclaration ou un commentaire), le débogueur CodeView émet un avertissement et ignore la commande.
Trace dans la barre de menu Pointez et cliquez pour tracer l'instruction suivante. Le type de trace est déterminé par le bouton cliqué :
Bouton Résultat
Cliquez à gauche La commande Trace est exécutée. Le débogueur CodeView exécute la ligne source suivante en mode source ou l'instruction suivante en mode assembleur. Si la ligne source ou l'instruction contient un appel à une routine ou une interruption, le débogueur commence à suivre l'appel (il entre dans l'appel et est prêt à exécuter la première ligne source ou instruction). Cette commande ne tracera pas dans les appels de fonction DOS.
Cliquez à droite La commande de pas de programme est exécutée. Le débogueur exécute la ligne source suivante en mode source ou l'instruction suivante en mode assembleur. Si la ligne source ou l'instruction contient un appel à une routine ou une interruption, le débogueur CodeView parcourt l'intégralité de l'appel (il exécute l'appel à returnf) et est prêt à exécuter la ligne ou l'instruction après l'appel. Ces deux commandes ne sont différentes que si l'emplacement actuel est le début d'une procédure, d'une interruption ou d'un appel.
Go dans la barre de menu Pointez et cliquez sur l'un des boutons pour exécuter jusqu'au point d'arrêt suivant ou jusqu'à la fin du programme si aucun point d'arrêt n'est rencontré.
Drapeau dans la fenêtre de registre Pointez sur un nom de drapeau et cliquez sur l'un des boutons pour inverser le drapeau. Si le bit d'indicateur est défini, il sera effacé ; si le bit d'indicateur est effacé, il sera activé. Le nom du drapeau est modifié à l'écran pour correspondre au nouvel état. Si vous utilisez le mode couleur, la couleur du mnémonique du drapeau changera également. Cette commande ne peut être utilisée que lorsque la fenêtre de registre est ouverte. Utilisez la commande avec prudence, car la modification des bits de drapeau peut modifier l'exécution du programme au niveau le plus bas.

Vous pouvez généralement interrompre l'exécution du programme en appuyant sur Ctrl+Break ou Ctrl+C.

Sélection dans les menus avec la souris

Cette section explique comment effectuer des sélections à partir des menus avec la souris.

La barre de menus en haut de l'écran comporte neuf titres : File, View, Search, Run, Watch, Options, Language, Calls, Help, Trace et Go. Les neuf premiers titres sont des menus, et les deux derniers sont des commandes que vous pouvez exécuter en cliquant avec la souris. Les cinq étapes pour ouvrir un menu et faire une sélection sont décrites ci-dessous :

Si votre réponse est valide, la commande sera exécutée. Si vous entrez une réponse invalide dans la boîte de dialogue, une boîte de message apparaîtra vous indiquant le problème et vous demandant d'appuyer sur une touche. Appuyez sur n'importe quelle touche ou cliquez sur un bouton de la souris pour faire disparaître la boîte de message. De plus, si vous appuyez sur Enter sans saisir de caractères, la boîte de message disparaîtra.

Il existe plusieurs raccourcis que vous pouvez utiliser lorsque vous sélectionnez des éléments de menu avec la souris. Si vous changez d'avis et décidez de ne pas sélectionner un élément d'un menu, sortez simplement du menu et relâchez le bouton de la souris - le pointeur de menu directement à partir de n'importe quel point du menu actuel vers le titre du nouveau menu.

Utilisation des sélections de menu

Cette section décrit les sélections de chacun des menus CodeView. Ces sélections peuvent être faites avec le clavier. Notez que bien que les commandes Trace et Go apparaissent dans la barre de menus, ce ne sont pas des menus. Ces titres sont fournis principalement aux utilisateurs de souris.

Le menu File

Le menu File comprend des sélections pour travailler sur le fichier source ou programme actuel. Le menu File est illustré dans l'image suivante et les sélections sont expliquées ci-dessous.

Sélection Action
Open... Ouvre un nouveau fichier. Lorsque vous effectuez cette sélection, une boîte de dialogue apparaît demandant le nom du nouveau fichier que vous souhaitez ouvrir. Tapez le nom d'un fichier source, d'un fichier inclus ou de tout autre fichier de test. Le texte du nouveau fichier remplace le contenu actuel de la fenêtre d'affichage (si vous êtes en mode assemblage, le débogueur CodeView passera en mode source). Lorsque vous avez terminé de visualiser le fichier, vous pouvez rouvrir le fichier d'origine. Le dernier emplacement et les points d'arrêt seront toujours marqués à votre retour. Vous n'aurez peut-être pas besoin d'ouvrir un nouveau fichier pour voir les fichiers source d'un autre module de votre programme. Le débogueur CodeView bascule automatiquement vers le fichier source d'un module lorsque l'exécution du programme entre dans ce module. Bien qu'il ne soit jamais nécessaire de changer de fichier source, cela peut être souhaitable si vous souhaitez définir des points d'arrêt ou exécuter une ligne dans un module qui n'est pas en cours d'exécution. Si le débogueur ne peut pas trouver le fichier source lorsqu'il change de module, une boîte de dialogue apparaît demandant une spécification de fichier pour le fichier source. Vous pouvez soit entrer une nouvelle spécification de fichier si le fichier se trouve dans un autre répertoire, soit appuyer sur la touche Enter si aucun fichier source n'existe. Si vous appuyez sur la touche Enter, le module ne peut être débogué qu'en mode assemblage.
DOS Shell Sortie vers un interpéteur de commande DOS. Cela fait apparaître l'écran DOS, où vous pouvez exécuter des commandes DOS ou des fichiers exécutables. Pour revenir au débogueur CodeView, tapez EXIT au prompt de commande DOS. L'écran CodeView réapparaît avec le même état qu'il avait lorsque vous l'avez quitté. La commande Shell Escape fonctionne en enregistrant les processus en cours en mémoire, puis en exécutant une seconde copie de COMMAND.COM. Cela nécessite plus de 200 Ko de mémoire libre, car le débogueur, COMMAND.COM, les tables de symboles et le programme débogué doivent tous être enregistrés en mémoire. Si vous ne disposez pas de suffisamment de mémoire pour exécuter la commande Shell Escape, un message d'erreur s'affiche. Même si vous disposez de suffisamment de mémoire pour exécuter la commande, il se peut que vous n'ayez pas assez de mémoire pour exécuter des programmes volumineux à partir de l'interpréteur de commande. La commande Shell Escape ne fonctionne pas dans certaines conditions.
Exit Termine le débogueur et retourne sous DOS.

Le menu View

Le menu View comprend des sélections pour basculer entre les modes source et assemblage, et pour basculer entre l'écran de débogage et l'écran de sortie. Les touches de fonction correspondantes pour la sélection de menu sont affichées sur le côté droit du menu, le cas échéant. Le menu View est illustré dans l'image suivante et les sélections sont expliquées ci-dessous :

Les termes "source mode" et "assembly mode" s'appliquent aux programmes Microsoft Macro Assembler ainsi qu'aux programmes de langage de haut niveau. Le mode source utilisé avec les programmes assembleur affiche le code source tel qu'il a été écrit à l'origine, y compris les commentaires et les directives. Le mode assembly affiche le code machine non assemblé, sans informations symboliques.

À tout moment, exactement une des sélections suivantes aura une petite double flèche à gauche du nom : Source, Mixte et Assembly. Cette flèche indique lequel des trois modes d'affichage est utilisé. Si vous sélectionnez un mode alors que vous êtes déjà dans ce mode, la sélection sera ignorée. La sélection Registers peut avoir ou non une double flèche vers la gauche, selon que la fenêtre de registre est affichée ou non.

Sélection Action
Source Passe en mode source (affichant uniquement les lignes source).
Mixed Passe en mode mixte (montrant à la fois le code machine non assemblé et les lignes source).
Assembly Passe au mode d'assemblage (montrant uniquement le code machine non assemblé).
Registers La sélection de cette option permet d'activer et de désactiver la fenêtre d'enregistrement. Vous pouvez également activer et désactiver le registre en appuyant sur la touche F2.
Output La sélection de cette option affichera l'écran de sortie. L'affichage complet de CodeView disparaîtra temporairement, mais reviendra dès que vous appuierez sur une touche. La commande Output peut également être sélectionnée avec la touche F4.

Le menu Search

Le menu Search comprend des sélections pour rechercher dans les fichiers texte des chaînes de texte et pour rechercher du code exécutable pour les étiquettes. Le menu Search est illustré dans l'image suivante et les sélections sont expliquées ci-dessous :

Sélection Action
Find... Recherche dans le fichier source actuel ou dans un autre fichier texte une expression régulière spécifiée. (Cette sélection peut également être effectuée sans dérouler de menu, simplement en appuyant sur Ctrl+F.) Lorsque vous effectuez cette sélection, une boîte de dialogue s'ouvre, vous demandant d'entrer une expression régulière. Tapez l'expression que vous souhaitez rechercher et appuyez sur la touche Enter. Le débogueur CodeView démarre à la position actuelle ou la plus récente du curseur dans la fenêtre d'affichage et recherche l'expression. Si votre entrée est trouvée, le curseur se déplace vers la première ligne source contenant l'expression. Si vous êtes en mode assemblage, le débogueur passe automatiquement en mode source lorsque l'expression est trouvée. Si l'entrée n'est pas trouvée, une boîte de message s'ouvre pour vous indiquer le problème et vous demander d'appuyer sur une touche (vous pouvez également cliquer sur un bouton de la souris) pour continuer. Les expressions régulières sont une méthode de spécification de chaînes de texte variables. Cette méthode est similaire à la méthode DOS consistant à utiliser des caractères génériques dans les noms de fichiers. Vous pouvez utiliser les sélections de recherche sans comprendre les expressions régulières. Étant donné que les chaînes de caractères de texte sont la forme la plus simple d'expressions régulières, vous pouvez simplement entrer une chaîne de caractères comme expression que vous souhaitez rechercher. Par exemple, vous pouvez saisir count si vous souhaitez rechercher le mot «count». Les caractères suivants ont une signification particulière dans les expressions régulières : barre oblique inverse (\), astérisque (*), crochet gauche ([), point (.), signe dollar ($) et caret (^). Afin de trouver des chaînes de caractères contenant ces caractères, vous devez faire précéder les caractères d'une barre oblique inverse ; cela annule leurs significations particulières. Par exemple, les points des opérateurs relationnels et logiques FORTRAN doivent être précédés de barres obliques inverses. Vous utiliseriez \.EQ pour trouver l'opérateur .EQ.. Avec C, vous utiliseriez \*ptr pour trouver *ptr ; et avec BASIC, vous utiliseriez NAME\$ pour trouver NAME$. La sélection Case Sense dans le menu Options n'a aucun effet sur la recherche d'expressions régulières.
Next Recherche la correspondance suivante de l'expression régulière actuelle. Cette sélection n'a de sens qu'après avoir utilisé la commande Search pour spécifier l'expression régulière actuelle. Si le débogueur CodeView effectue une recherche jusqu'à la fin du fichier sans trouver une autre correspondance pour l'expression, il effectue une boucle et commence la recherche au début du fichier.
Previous Recherche la correspondance précédente de l'expression régulière actuelle. Cette sélection n'a de sens qu'après avoir utilisé la commande Search pour spécifier l'expression régulière actuelle. Si le débogueur recherche jusqu'au début du fichier sans trouver une autre correspondance pour l'expression, il boucle et commence la recherche à la fin du fichier.
Label... Recherche dans le code exécutable une étiquette de langage assembleur. Si l'étiquette est trouvée, le curseur se déplace vers l'instruction contenant l'étiquette. Si vous démarrez la recherche en mode source, le débogueur passera en mode assembleur pour afficher une étiquette dans une routine de bibliothèque ou un module de langage assembleur.

Le menu Run

Le menu Run comprend des sélections pour exécuter votre programme. Le menu Run est illustré dans l'image suivante et les sélections sont expliquées ci-dessous.

Sélection Action
Start Démarre le programme depuis le début et l'exécute. Tous les points d'arrêt ou instructions de surveillance précédemment définis seront toujours en vigueur. Le débogueur CodeView exécutera votre programme du début au premier point d'arrêt, ou jusqu'à la fin du programme si aucun point d'arrêt n'est rencontré. Cela a le même effet que de sélectionner Restart, puis d'entrer la commande Go.
Restart Redémarre le programme en cours, mais ne commence pas son exécution. Vous pouvez déboguer à nouveau le programme depuis le début. Tous les points d'arrêt ou des instructions de surveillance précédemment définis seront toujours en vigueur.
Execute S'exécute au ralenti à partir de l'instruction en cours. C'est la même chose que la commande Execute (E) de la boîte de dialogue. Pour arrêter l'exécution, appuyez sur n'importe quelle touche ou sur un bouton de la souris.
Clear Efface tous les points d'arrêt.
Breakpoints Cette sélection peut être pratique après avoir sélectionné Redémarrer si vous ne souhaitez pas utiliser les points d'arrêt précédemment définis. Notez que les instructions watch ne sont pas effacées par cette commande.

Bien que "Start" et "Restart" conservent les points d'arrêt, ainsi que le nombre de passes et les paramètres, toutes les instructions entrées avec la commande Assemble seront écrasées par le programme d'origine.

Le menu Watch

Le menu Watch comprend des sélections pour gérer la fenêtre de surveillance. Les sélections de ce menu sont également disponibles avec les commandes de dialogue. Le menu Watch est illustré dans l'image suivante et les sélections sont expliquées ci-dessous :

Sélection Action
Add Watch... Ajoute une instruction watch-expression à la fenêtre de surveillance. (Cette sélection peut aussi être faite directement, en appuyant sur Ctrl+W.) Une fenêtre de dialogue s'ouvre, demandant l'expression de niveau source (pouvant être simplement une variable) dont vous voulez voir la valeur affichée dans la fenêtre de surveillance. Tapez l'expression et appuyez sur la touche Enter ou sur un bouton de la souris. L'instruction apparaît dans la fenêtre de surveillance en texte normal. Vous ne pouvez pas spécifier une plage de mémoire à afficher avec la sélection Add watch comme avec la commande de la boîte de dialogue Watch. Vous pouvez spécifier le format dans lequel la valeur sera affichée. Tapez l'expression, suivie d'une virgule et d'un spécificateur de format CodeView. Si vous ne donnez pas de spécificateur de format, le débogueur CodeView affiche la valeur dans un format par défaut.
Watchpoint... Ajoute une déclaration de point de surveillance à la fenêtre. Une fenêtre de dialogue s'ouvre, demandant l'expression au niveau de la source dont vous voulez tester la valeur. L'instruction de point d'observation apparaît dans la fenêtre d'observation en texte de haute intensité lorsque vous entrez l'expression. Un point d'observation est un point d'arrêt conditionnel qui provoque l'arrêt de l'exécution lorsque l'expression devient non nulle (vraie).
Tracepoint... Ajoute une instruction de point de trace à la fenêtre d'observation. Une fenêtre de dialogue s'ouvre, demandant l'expression au niveau de la source ou l'intervalle de mémoire dont vous souhaitez tester la valeur. L'instruction de point de trace apparaît dans la fenêtre d'observation sous forme de texte de haute intensité lorsque vous entrez l'expression. Un point de trace est un point d'arrêt conditionnel qui provoque l'arrêt de l'exécution lorsque la valeur d'une expression donnée change. Vous ne pouvez pas spécifier une plage de mémoire à tester avec la sélection Tracepoint comme vous le pouvez avec la commande de dialogue Tracepoint. Lors de la définition d'une expression de point de trace, vous pouvez spécifier le format dans lequel la valeur sera affichée. Après l'expression, tapez une virgule et un spécificateur de format. Si vous ne donnez pas de spécificateur de format, le débogueur CodeView affiche la valeur dans un format par défaut.
Delete Watch... Supprime une déclaration de la fenêtre de surveillance. (Cette sélection peut également être effectuée directement, en appuyant sur Ctrl+U.) Une fenêtre de dialogue s'ouvre, affichant les instructions de surveillance en cours. Si vous utilisez le clavier, appuyez sur la touche ou pour déplacer la surbrillance sur l'instruction que vous souhaitez supprimer, puis appuyez sur la touche Enter.
Delete All Watch Supprime toutes les déclarations dans la fenêtre de surveillance. Toutes les instructions de surveillance, de point de surveillance et de point de trace sont supprimées, la fenêtre de surveillance disparaît et la fenêtre d'affichage est redessinée pour profiter de l'espace libéré à l'écran.

Le menu Options

Le menu Options vous permet de définir des options affectant divers aspects du comportement du débogueur CodeView. Le menu Options est illustré dans l'image suivante et les sélections sont expliquées ci-dessous :

Les sélections du menu Options comportent de petites flèches doubles à gauche du nom de la sélection lorsque l'option est activée. L'état de l'option (et la présence des doubles flèches) est inversé à chaque sélection de l'option. Par défaut, les options Flip/Swap et Bytes Coded sont activées et l'option 386 est désactivée lorsque vous démarrez le débogueur CodeView. Selon la langue dans laquelle se trouve votre programme principal, le débogueur activera automatiquement Case Sense (si votre programme est en C) ou le désactivera (si votre programme est dans une autre langue) lorsque vous commencerez le débogage. Les sélections du menu Options sont décrites ci-dessous.

Sélection Action
Flip/Swap Lorsqu'il est activé (par défaut), l'échange d'écran ou le retournement d'écran (selon celui avec lequel le débogueur a été démarré) est actif ; lorsqu'il est éteint, l'échange ou le retournement est désactivé. La désactivation de l'échange ou du retournement permet à l'écran de défiler plus facilement. Vous ne verrez pas le programme basculer ou permuter à chaque fois que vous exécuterez une partie du programme. Cette option n'a aucun effet si ni l'échange ni le retournement n'ont été sélectionnés au démarrage. Chaque fois que votre programme écrit à l'écran, assurez-vous que le retournement ou l'échange est activé. Si l'échange et le retournement sont désactivés, votre programme écrira la sortie à l'emplacement du curseur. Le débogueur CodeView détectera que l'écran a changé et redessinera l'écran, détruisant ainsi la sortie du programme. Un message d'erreur s'affiche également :

Flip/Swap option off - application output lost.
Bytes Coded Lorsque cette option est activée (valeur par défaut), les instructions, les adresses d'instruction et les octets de chaque instruction sont affichés ; lorsqu'il est éteint, seules les instructions sont affichées. Cette option affecte uniquement le mode d'assemblage. L'affichage suivant montre l'apparence de l'exemple de code lorsque l'option est désactivée :

27:       name = gets(namebuf);
        LEA       AX,Word ptr [namebuf]
        PUSH      AX
        CALL      _gets (03E1)
        ADD       SP,02
        MOV       Word Ptr [name],AX

L'affichage suivant montre l'apparition du même code lorsque l'option est activée :

27:       name = gets(namebuf); 32AF:003E 8D46E          LEA     AX,Word Ptr [namebuf]
32AF:0041 50             PUSH    AX
32AF:0042 E89C03         CALL    _gets (03E1)
32AF:0045 83C402         ADD     SP,02
32AF:0048 8946DA         MOV     Word Ptr [name],AX
Case Sense Lorsque la sélection est activée, le débogueur CodeView suppose que les noms de symboles sont sensibles à la casse (chaque lettre minuscule est différente de la lettre majuscule correspondante) ; lorsqu'il est désactivé, les noms de symboles ne sont pas sensibles à la casse. Cette option est activée par défaut pour les programmes C et désactivée par défaut pour les programmes FORTRAN, BASIC et assembleur. Vous voudrez probablement laisser l'option dans son réglage par défaut.
386 Lorsque cette option est activée, la fenêtre de registre affiche les registres au format 386 plus large. De plus, cette option vous permettra d'assembler et d'exécuter des instructions faisant référence à des registres 32 bits. Si l'option 386 n'est pas activée, toutes les données entreposées dans le mot de poids fort d'un registre 32 bits seront perdues. Pour utiliser cette option, vous devez disposer d'un microprocesseur 386 fonctionnant en mode 386. Si vous n'avez pas de microprocesseur 386, le débogueur répondra avec le message :

CPU is not an 80386


et laissera l'option désactivée.

Le menu Language

Le menu Language vous permet soit de sélectionner l'évaluateur d'expression, soit de demander au débogueur CodeView de le sélectionner automatiquement pour vous. Le menu Language est illustré dans l'image suivante et les sélections sont expliquées ci-dessous. Comme pour le menu Options, la sélection ON est marquée par des doubles flèches. Contrairement au menu Options, cependant, exactement un élément (et pas plus) du menu Language est sélectionné à un moment donné.

La sélection Auto oblige le débogueur à sélectionner automatiquement l'évaluateur d'expression chaque fois qu'un nouveau fichier source est chargé. Le débogueur examinera l'extension du fichier source afin de déterminer quel évaluateur d'expression sélectionner. La sélection Auto utilisera l'évaluateur d'expression C si le fichier source actuel n'a pas d'extension .BAS, .F, .FOR ou .PAS.

Si vous passez à un module source avec une extension .ASM, alors Auto forcera le débogueur à sélectionner l'évaluateur d'expression C, mais toutes les valeurs par défaut C ne seront pas utilisées ; la base système sera hexadécimale, la sensibilité à la casse sera désactivée et la fenêtre de registre s'affichera.

Lorsqu'un évaluateur d'expression de langage est sélectionné, le débogueur utilise cet évaluateur, quel que soit le type de programme en cours de débogage.

Le menu Calls

Le menu Calls est différent des autres menus en ce que son contenu et sa taille changent en fonction de l'état de votre programme. Le menu Calls est illustré dans l'image suivante. Le mnémonique de chaque élément du menu Calls est un numéro. Taper le numéro affiché immédiatement à gauche d'une routine pour la sélectionner. Vous pouvez également utiliser la touche ou pour accéder à votre sélection, puis appuyer sur la touche Enter. Vous pouvez également utiliser la souris pour sélectionner dans le menu Calls.

L'effet d'une sélection dans le menu Calls est d'afficher une routine. Le curseur ira à la ligne à laquelle la routine sélectionnée s'est exécutée en dernier. Par exemple, si vous sélectionnez main, CodeView affichera main, à l'endroit où main a appelé calc. Notez que la sélection d'une routine dans le menu Calls n'affecte pas (en soi) l'exécution du programme. Il fournit simplement un moyen pratique de visualiser les routines précédemment appelées.

Il n'est pas nécessaire qu'une des routines soit sélectionnée. Le menu Calls est utile simplement pour visualiser la liste des routines précédemment appelées.

Le menu Calls affiche la routine en cours et la liste des routines à partir desquelles elle a été appelée. La routine actuelle est toujours en haut. La routine à partir de laquelle la routine courante a été appelée est directement en dessous. Les autres routines actives sont affichées dans l'ordre inverse dans lequel elles ont été appelées. Avec les programmes C et FORTRAN, la routine inférieure doit toujours être principale. (Le seul moment où main ne sera pas la routine inférieure est lorsque vous parcourez les routines de démarrage ou de terminaison de la bibliothèque standard.)

La valeur actuelle de chaque paramètre, le cas échéant, est indiquée entre parenthèses après la routine. Le menu se développe pour accueillir les paramètres de la routine la plus large. Les paramètres sont affichés dans la base courante (la valeur par défaut est décimale). S'il y a plus de routines actives qu'il n'y en a sur l'écran, ou si les paramètres de la routine sont trop larges, l'affichage s'étendra à gauche et à droite. La commande de dialogue Stack Trace (K) affiche également toutes les routines et tous les paramètres.

Si vous utilisez le débogueur CodeView pour déboguer des programmes en langage assembleur, les routines s'affichent dans le menu Calls uniquement si elles utilisent l'une des conventions d'appel Microsoft.

Le menu Help

Le menu Help répertorie les principales rubriques du système d'aide. Pour obtenir de l'aide, ouvrez le menu Help, puis sélectionnez la rubrique que vous souhaitez afficher.

Chaque sujet peut avoir n'importe quel nombre de sous-sujets. Vous devez d'abord passer au sujet principal.

La sélection du bas du menu Help est la commande About Codeview. Lorsque vous faites cette sélection, le débogueur affiche une petite boîte au centre de l'écran donne l'heure, le nom du produit et le numéro de version.

Utilisation du système d'aide

Le système d'aide en ligne CodeView utilise des menus arborescents pour vous donner un accès rapide aux écrans d'aide sur une variété de sujets. Le système utilise une combinaison d'accès au menu et d'écrans liés séquentiellement, comme expliqué ci-dessous.

Le fichier d'aide s'appelle CV.HLP. Il doit être présent dans le répertoire courant ou dans l'un des répertoires spécifiés avec la commande PATH de DOS. Si le fichier d'aide est introuvable, le débogueur CodeView fonctionnera toujours, mais vous ne pourrez pas utiliser le système d'aide. Un message d'erreur apparaîtra si vous essayez d'utiliser une commande d'aide.

Lorsque vous demandez de l'aide, soit en appuyant sur la touche F1, soit en utilisant la commande de dialogue H, soit en sélectionnant le menu Help, le premier écran d'aide apparaît. Vous pouvez sélectionner les boutons Next et Previous pour parcourir les écrans. Les écrans sont disposés de manière circulaire, de sorte que la sélection de Next sur le dernier écran vous amène au premier écran. Sélectionnez le bouton Cancel pour revenir à l'écran CodeView. Appuyez sur les touches PgDn, PgUp et Esc pour obtenir les mêmes résultats que de sélectionner respectivement Next, Previous et Cancel avec la souris.

Vous pouvez entrer dans le système d'aide à partir d'un sujet particulier en sélectionnant le sujet dans le menu Help. Une fois dans le système, utilisez Next et Previous pour accéder à d'autres écrans.

Utilisation du mode séquentiel

Le mode séquentiel est requis si vous ne disposez ni d'un IBM Personal Computer ni d'un ordinateur étroitement compatible. En mode séquentiel, le débogueur CodeView fonctionne un peu comme ses prédécesseurs, l'utilitaire de débogage symbolique Microsoft (SYMDEB) et l'utilitaire DEBUG de DOS. Le mode séquentiel est également utile lorsque vous utilisez une entrée et une sortie CodeView redirigées.

En mode séquentiel, l'entrée et la sortie du débogueur CodeView se déplacent toujours vers le bas de l'écran à partir de l'emplacement actuel. Lorsque l'écran est plein, l'ancienne sortie défile en haut de l'écran pour faire place à la nouvelle sortie apparaissant en bas. Vous ne pouvez jamais revenir pour examiner les commandes précédentes une fois qu'elles ont disparu, mais dans de nombreux cas, vous pouvez ressaisir la commande pour afficher à nouveau les mêmes informations à l'écran.

La plupart des commandes de fenêtre ne peuvent pas être utilisées en mode séquentiel. Cependant, les touches de fonction suivantes, étant utilisées comme commandes en mode fenêtre, sont également disponibles en mode séquentiel :

Commande Action
F1 Affiche un résumé de la syntaxe de commande.
F2 Affiche les registres. Cela équivaut à la commande de dialogue Register (R).
F3 Bascule entre les modes source, mixte et assemblage. Appuyez sur cette touche pour faire pivoter le mode entre source, mixte et assemblage. Vous pouvez obtenir le même effet en utilisant les commandes de dialogue Set Assembly (S-), Set Mixed (S&) et Set Source (S+).
F4 Passe à l'écran de sortie, qui affiche la sortie de votre programme. Appuyez sur n'importe quelle touche pour revenir à l'écran de débogage CodeView. Cela équivaut à la commande de dialogue Screen Exchange (\).
F5 S'exécute à partir de l'instruction en cours jusqu'à ce qu'un point d'arrêt ou la fin du programme soit rencontré. Cela équivaut à la commande Go dialog (G) sans paramètre.
F8 Exécute la ligne source suivante en mode source ou l'instruction suivante en mode assemblage. Si la ligne source ou l'instruction contient une fonction, une procédure ou un appel d'interruption, le débogueur CodeView exécute la première ligne source de l'appel et est prêt à exécuter la ligne source ou l'instruction suivante dans l'appel. Cela équivaut à la commande de dialogue Trace (T).
F9 Définit ou efface un point d'arrêt à l'emplacement actuel du programme. Si l'emplacement actuel du programme n'a pas de point d'arrêt, un est défini. Si l'emplacement actuel a un point d'arrêt, il est supprimé. Cela équivaut à la commande de dialogue Breakpoint Set (BP) sans paramètre.
F10 Exécute la ligne source suivante en mode source ou l'instruction suivante en mode assemblage. Si la ligne source ou l'instruction contient une fonction, une procédure ou un appel d'interruption, l'appel est exécuté jusqu'à la fin et le débogueur CodeView est prêt à exécuter la ligne ou l'instruction après l'appel. Cela équivaut à la commande de la boîte de dialogue Program Step (P).

Les commandes CodeView Watch (W), Watchpoint (WP) et Tracepoint (TP) fonctionnent en mode séquentiel, mais comme il n'y a pas de fenêtre de surveillance, les instructions de surveillance ne sont pas affichées. Vous devez utiliser la commande Watch List (W) pour examiner les instructions de surveillance et les valeurs de surveillance.

Toutes les commandes CodeView affectant le fonctionnement du programme (telles que Trace, Go et Breakpoint Set) sont disponibles en mode séquentiel. Toute opération de débogage effectuée en mode fenêtre peut également être effectuée en mode séquentiel.



Dernière mise à jour : Samedi, le 5 février 2022