Question

Parfois, j'accumule une grande masse de points d'arrêt de différentes sessions de débogage dans différents endroits dans mon code. Comment le débogueur sait efficacement quand arrêter pour un point d'arrêt? Il ne peut peut-être arrêter à chaque ligne pour vérifier le nom du fichier de numéro de ligne et de la source à une liste potentiellement longue de points d'arrêt, peut-il?

Ceci est le débogueur Java dans Eclipse, mais je suppose que la question s'applique à tout débogueur.

Était-ce utile?

La solution

La stratégie utilisée dans de nombreux débogueurs (je ne sais pas Eclipse) est de mettre un patch dans le code au point du point d'arrêt qui est essentiellement un appel de sous-programme ou un appel système. Le code a sauté à a l'information breakpoint, et fait tout l'impression ou d'accepter des commandes de l'utilisateur, et a également le code qui a été écrasé par le patch, de sorte que le code peut être exécuté pour rendre l'exécution correspond le code d'origine, sans point d'arrêt

Autres conseils

Pour ajouter à la bonne réponse Nadreck:

Il y a un article avec plus de détails, y compris certaines des choses plus exotiques (spécifique opcodes sur x86, matériel.) points d'arrêt

débogueurs mettre en œuvre points d'arrêt dans le matériel ou le logiciel. Ce dernier nécessite l'enregistrement de l'instruction d'origine, l'insertion d'un code spécial qui génère une exception et quand l'exception est soulevée, réinsérant l'instruction d'origine et de laisser l'utilisateur de savoir que le point d'arrêt a été touché. Lire mon article pour les détails sordides sur des points d'arrêt du logiciel.

Vous pouvez obtenir tous les détails de la structure interne de Eclipse Debugger et comment écrire un sur le lien ci-dessous Comment écrire un Débogueur Eclipse

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top