Maison  >  Article  >  Opération et maintenance  >  Comment utiliser la commande debug g ?

Comment utiliser la commande debug g ?

藏色散人
藏色散人original
2019-04-29 11:13:5810541parcourir

La commande G dans DEBUG est utilisée pour exécuter du code. Sa syntaxe est "g [=adresse] [points d'arrêt]". à l'emplacement spécifié dans la mémoire, si aucun paramètre n'est ajouté, la valeur par défaut est d'exécuter à partir de l'adresse IP actuelle jusqu'à la fin du programme.

Comment utiliser la commande debug g ?

DEBUG La commande G est utilisée pour exécuter du code. Cette commande peut être suivie d'adresses et de points d'arrêt, c'est-à-dire que le format est g [=adresse] [points d'arrêt]. Elle fera une pause après l'exécution du code à l'emplacement spécifié dans la mémoire. Si aucun paramètre n'est ajouté, la valeur par défaut est. exécuté à partir de l’adresse IP actuelle jusqu’à la fin du programme.

Comment utiliser la commande debug g ?

syntaxe de la commande debug g

g [=address] [breakpoints]

Paramètres :
adresse, pour le programme actuellement en mémoire, préciser l'adresse à partir de laquelle il commencera à fonctionner.
points d'arrêt, spécifie 1 à 10 points d'arrêt temporaires qui peuvent être définis dans le cadre de la sous-commande g.
?, affiche la liste des sous-commandes de débogage.

Remarque :
Windows XP n'utilise pas cette commande. Utilisez-le uniquement pour la compatibilité avec les fichiers MS-DOS.
Spécifiez un élément d'adresse valide, où Adresse est un nom à deux chiffres contenant un enregistrement de segment alphabétique ou une adresse de champ à quatre chiffres plus un décalage. Les registres de segments ou les adresses de segments peuvent être ignorés.

CS est la section par défaut pour les sous-commandes "debug" suivantes : a, g, l, t, u et w. Le segment par défaut pour toutes les autres commandes est DS. Toutes les valeurs sont au format hexadécimal. Deux points doivent être inclus entre le nom du segment et le décalage. Les adresses valides sont les suivantes :

CS:0100
04BA:0100

Utilisation du paramètre d'adresse
Un signe égal (=) doit être utilisé avant le paramètre d'adresse pour distinguer l'adresse des points d'arrêt.

Spécifier les points d'arrêt
Peu importe l'endroit où vous tapez un point d'arrêt dans la liste des points d'arrêt, le programme s'arrêtera au premier point d'arrêt. Debug.exe remplace l'instruction d'origine par un code d'arrêt à chaque point d'arrêt.

Lorsque le programme atteint un point d'arrêt, Debug.exe restaure toutes les adresses de point d'arrêt à leurs instructions d'origine et affiche le contenu de tous les registres, l'état de tous les indicateurs et la forme décodée de la dernière instruction exécutée. Debug.exe affiche désormais les mêmes informations que lors de l'utilisation de la sous-commande r (register) et de la spécification de l'adresse du point d'arrêt.

Si vous n'arrêtez pas le programme à un point d'arrêt, Debug.exe ne remplacera pas le code d'interruption par l'instruction d'origine.

Il est possible de définir un point d'arrêt uniquement sur l'adresse contenant le premier octet de l'opcode 8086 (opcode). Si plus de 10 points d'arrêt sont définis, Debug.exe affichera le message suivant :

bp error

Utilisation du pointeur de pile utilisateur
Le pointeur de pile utilisateur doit être valide et doit avoir 6 octets disponibles pour la sous-commande g. La sous-commande g utilise l'instruction iret pour accéder au programme qui doit être testé. Debug.exe définit le pointeur de pile utilisateur et place les indicateurs utilisateur, le registre de segment de code et le pointeur d'instruction sur la pile utilisateur. (Le système d'exploitation peut échouer si la pile utilisateur n'est pas valide ou est trop petite. Debug.exe place un code d'arrêt (0CCh) à l'adresse du point d'arrêt spécifiée ou à l'adresse spécifiée.

Redémarrez le programme
Faire ne redémarrez pas le programme après l'apparition du message suivant :

Program terminated normally

Pour exécuter le programme correctement, il doit être rechargé à l'aide des sous-commandes n (Nom) et l (Charger)

Pour plus d'informations sur. en utilisant la sous-commande p pour exécuter des boucles, des instructions de chaîne répétées, des interruptions logicielles ou des sous-programmes, voir Rubriques connexes

Pour plus d'informations sur l'utilisation de la sous-commande t pour exécuter une instruction, voir « Rubriques connexes »

ExemplePour exécuter le programme actuellement en mémoire et l'exécuter à l'adresse du point d'arrêt 7550 dans le segment CS, tapez :

gcs:7550

Debug.exe affichera le contenu des registres et le état des indicateurs, puis terminez la sous-commande g

Pour définir deux points d'arrêt, tapez :


gcs:7550, cs:8000

Si vous tapez à nouveau la sous-commande g après que Debug.exe rencontre un point d'arrêt, exécution. commencera à partir de l'instruction après le point d'arrêt, pas à l'adresse de départ.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn