Partager via


gh (Go with Exception Handled)

La commande gh marque l’exception du thread donné comme ayant été gérée et permet au thread de redémarrer l’exécution à l’instruction qui a provoqué l’exception.

Syntaxe du mode utilisateur

[~Thread] gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Syntaxe du mode noyau

gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Paramètres

Fil
(Mode utilisateur uniquement) Spécifie le thread à exécuter. Ce thread doit avoir été arrêté par une exception. Pour plus d’informations sur la syntaxe, consultez Syntaxe du thread.

un
Fait en sorte que tout point d’arrêt créé par cette commande soit un point d’arrêt de processeur (comme ceux créés par ba) plutôt qu’un point d’arrêt logiciel (comme ceux créés par bp et bm). Si BreakAddress n’est pas spécifié, aucun point d’arrêt n’est créé et l’indicateur n’a aucun effet.

StartAddress
Spécifie l’adresse à laquelle l’exécution doit commencer. S’il n’est pas spécifié, le débogueur transmet l’exécution à l’adresse où l’exception s’est produite. Pour plus de détails sur la syntaxe, veuillez consulter la rubrique Syntaxe de l’adresse et de la plage d’adresses.

BreakAddress
Spécifie l’adresse d’un point d’arrêt. Si BreakAddress est spécifié, il doit spécifier une adresse d’instruction (autrement dit, l’adresse doit contenir le premier octet d’une instruction). Jusqu’à dix adresses d’arrêt, dans n’importe quel ordre, peuvent être spécifiées à la fois. Si BreakAddress ne peut pas être résolu, il est stocké en tant que point d’arrêt non résolu. Pour plus de détails sur la syntaxe, veuillez consulter la rubrique Syntaxe de l’adresse et de la plage d’adresses.

BreakCommands
Spécifie une ou plusieurs commandes à exécuter automatiquement lorsque le point d’arrêt spécifié par BreakAddress est atteint. Le paramètre BreakCommands doit être précédé d’un point-virgule. Si plusieurs valeurs BreakAddress sont spécifiées, BreakCommands s’applique à toutes ces valeurs.

Notez que le paramètre BreakCommands est disponible uniquement lorsque vous incorporez cette commande dans une chaîne de commande utilisée par une autre commande , par exemple, dans une autre commande de point d’arrêt ou dans un paramètre d’exception ou d’événement. Sur une ligne de commande, le point-virgule met fin à la commande gh et toutes les commandes supplémentaires répertoriées après l’exécution du point-virgule seront exécutées immédiatement après la fin de la commande gh .

Environnement

Élément Description
Modes mode utilisateur, mode noyau
Targets uniquement en débogage
Platforms all

Informations supplémentaires

Pour obtenir d’autres méthodes d’émission de cette commande et une vue d’ensemble des commandes associées, consultez Contrôle de la cible.

Notes

Si vous utilisez le paramètre BreakAddress pour définir un point d’arrêt, ce nouveau point d’arrêt est déclenché uniquement par le thread actuel. Les autres threads qui exécutent le code à cet emplacement ne seront pas arrêtés.

Si thread est spécifié, la commande gh est exécutée avec le thread unfrozen spécifié et tous les autres gelés. Par exemple, si la commande ~123gh, ~#gh ou ~*gh est spécifiée, les threads spécifiés sont non configurés et tous les autres sont gelés.