En déplaçant le pointeur d'instruction pendant le débogage de Java dans Eclipse
Puis-je déplacer le pointeur d'instruction directement à une ligne de mon choix (dans la méthode actuelle) lors du débogage d'un programme Java dans Eclipse (Galileo)?
Il est simple de faire glisser le pointeur d'instruction à la ligne désirée à l'intérieur d'une méthode dans Visual Studio, mais je ne vois pas un moyen de le faire dans Eclipse (et ne trouve rien à ce sujet dans la documentation ou sur google).
- Autant que je sache, vous ne pouvez pas revenir en arrière pour code déjà été exécutée.
- Dans mon cas précis, je veux sauter au dessus d'une si déclaration, mais je trouve qu'il est généralement très utile dans Visual Studio pour être en mesure de déplacer arbitrairement les IP au sein d'une méthode. Lors de recherches sur google je suis tombé sur ce blog (blogs.zdnet.com/Burnette/?p=52) la revendication de l'Éclipse est de 21e siècle, tandis que VS 2005 (!) est 20e siècle, tout en soulignant que même les anciennes versions de VS permettre l'adresse IP pour être déplacé.
- Sonne comme une très mauvaise chose à faire. Pourquoi auriez-vous besoin? Et de VS, vous pouvez le faire avec C# ou tout simplement C++?
- Pourquoi serait-ce une mauvaise chose? C'est un excellent outil pour le débogage. Vous pouvez explorer le comportement des différentes branches d'une méthode et d'obtenir beaucoup plus fait en un débogage de passe que si vous deviez redémarrer l'exécution avec un nouvel ensemble d'entrée pour exécuter d'autres branches. Combinée avec la capacité de modifier le code et continuer de débogage (avec la recompilation du code), il rend fixation pendant le débogage très efficace. Je ne connais pas le C++, je n'ai pas fait de C++ développement sur cette plate-forme.
- Eclipse va vous permettre de permet de revenir à une image précédente.
- Je sais que sur les retours en arrière. C'est une bonne fonctionnalité comme il va, mais juste me permet de relire l'exécution d'une méthode, de ne pas altérer le flux à l'intérieur de la méthode.
- Je tiens également à sauter par-dessus des états. Pas revenir en arrière ou quoi que ce soit. Cela devrait être la fonction de base d'un débogueur/IDE.
- Je suis stupéfait, il est difficile de croire cela, il semble être vrai.
- Mauvaise chose? Vous plaisantez? Nous sommes des développeurs, nous savons ce que nous faisons. Je veux juste essayer de certaines variations de l'exécution de code sans avoir à recompiler à de nombreuses reprises. Dans Visual Studio, il vous suffit de glisser le pointeur de la et déposez-la. Bien sûr, vous ne pouvez pas supprimer n'importe où, la portée des questions, des variables, etc. Quand j'ai dit que c'est une fonctionnalité de base-je attendre d'un IDE, je ne voulais pas dire que c'est facile à mettre en œuvre. Et c'est pas mal du tout, parce que nous savons ce que nous faisons. Cela permettra d'améliorer votre productivité (la pensée de recompiler quelque chose plusieurs fois sans aucune raison ou juste drag&drop).
- Je n'ai aucune idée de pourquoi j'ai écrit ce commentaire il y a 4 ans, j'étais probablement référence à des retours en arrière et j'ai probablement eu une mauvaise impression de ce que cette fonctionnalité a été fait dans VS. Oui, il semble certainement utile, et oui, vous pouvez obtenir vous-même vraiment confus par les donnant sur certains de changement d'état. Et de vous faire confus pendant le débogage signifie headbanging de votre clavier après plusieurs heures. Si vous voulez sauter par-dessus un morceau de code, utilisez le "saut à la position du curseur", eclipse doit l'avoir. Pour tout le reste, d'œuvrer pour l'unité des tests et de l'unité de code de tests.
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas possible.
Tout simplement si vous voulez exécuter du code à l'endroit actuel, vous pouvez utiliser le
Expressions
consulter et saisissez votre code comme une expression. Les méthodes appelées par l'évaluation de l'expression sera exécuté dans l'actuel contexte de débogage.C'est possible...
http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.user/tips/jdt_tips.html
En déplaçant le pointeur comme dans Visual Studio n'est pas possible, cependant, des solutions de contournement sont:
En retournant vers le début de la méthode exécutée:
Sélectionnez la méthode de débogage de la pile des appels, faites un clic droit -> "Goutte à l'image"
et voila, vous êtes de retour au début de la méthode.
Maintenant, pour atteindre votre ligne souhaitée, sélectionnez la ligne (en cliquant dessus) et appuyez sur ctrl+r ou cliquez-droit sur la ligne et sélectionnez "Exécuter en ligne.
Ces techniques sont très utiles et réduire le débogage des efforts massivement, profitez-en!
J'aime ankon de répondre le mieux, mais une autre option (qui ne fonctionne que pour votre instance spécifique -- si cela), c'est de s'arrêter à un point d'arrêt sur votre
if
et modifier la variable(s) évaluée au conditionnel, telle qu'elle retourne false (à partir de la "Variables" de la vue, cliquez-droit sur une variable et cliquez sur "Modifier la Valeur...")J'ai pensé que c'était tout à fait possible dans les anciennes versions d'eclipse, j'ai pensé que j'avais la mémoire de le faire, mais je suppose que j'ai juste implantés que la mémoire lorsque j'ai travaillé dans Visual Studio. À partir de ce que je suis en train de lire, il pourrait venir à la jvm et pas de l'éclipse elle-même, il y a des pages où il est suggéré que la jvm ne peut pas gérer cela.
À mon avis Eclipse est beaucoup de beaucoup de fois mieux que VS, j'ai beaucoup travaillé dans les deux, et depuis que j'ai découvert Eclipse j'ai toujours été dans la douleur lorsque j'ai eu à travailler dans VS. Mais n'ayant pas cette caractéristique est certainement blesser maintenant hehe.
Vous pouvez sauter directement à tout autre appel de méthode à l'intérieur de la cours de débogage de la méthode. Sélectionnez l'appel de la méthode ci-dessous votre actuelle pointeur d'instruction et d'utilisation "L'étape de sélection" dans le menu contextuel.
malheureusement pas possible à l'étape de l'avant avec pointeur d'instruction (program counter), donc ce que vous devez faire est plutôt de présenter votre propre "débogage", les variables que vous pouvez tester sur - disons que vous voulez à l'étape autour d'une boucle qui prend trop de temps, puis ajouter une variable et de test sur l'augmentation de sa valeur et ensuite encapsuler la boucle dans un si avec cette variable. Je sais que c'est laid, mais c'est fait - ou vous pouvez développer en C++ 🙂
Une astuce que j'utilise est de type a de l'espace dans votre classe, dans un endroit sûr comme dans la ligne de commentaire; supprimez-le immédiatement et enregistrer la classe. Cela force l'exécution de point de sauter au début de votre méthode actuelle. Pas l'idéal, je l'avoue, mais il peut parfois être utilisé comme une solution de contournement pour obtenir ce que vous voulez.
Bien que dans l'installation par défaut d'eclipse, il n'est pas possible de passer directement de l'exécution, comme dans Visual Studio, il peut exister un plugin eclipse qui fournit cette fonctionnalité quelque part. Avoir une recherche autour de.
Juste à droite, cliquez sur la ligne souhaitée et choisissez exécuter en ligne.C'est ça...
Placez le curseur sur la ligne de votre choix et cliquez sur ctrl-R ("Exécuter à la ligne") ou le bouton droit de la souris et sélectionnez "Exécuter en ligne" dans le menu contextuel.