Eclipse Points D'Arrêt Conditionnels Cassé?
Je suis en train de mettre en place un point d'arrêt conditionnel dans le code décompilé, mais Eclipse continue de me donner le message d'erreur:
Point d'arrêt conditionnel a erreur de compilation(s)
Raison: les Évaluations doivent contenir une expression ou d'un bloc de bien-formé relevés
Mon cas est assez simple, il suffit d'essayer pour comparer avec une valeur de chaîne. J'ai essayé toutes les suivantes, et j'ai des erreurs avec tous seul:
myObj.toString() == "abc123"
myObj.toString().equals("abc123")
if(myObj.toString() == "abc123"){ return true; }
true == true
J'ai aussi essayé toutes les combinaisons de avoir ou ne pas avoir un point-virgule à la fin de la ligne(s) et chaque combinaison de l'espacement et des sauts de ligne et chaque combinaison de avoir ou ne pas avoir {} entourant ma condition. En gros, je n'ai aucune idée de pourquoi cela ne fonctionne pas...
Le code je suis en train de déboguer via est à l'intérieur d'un pot qui est décompilé avec JD-Eclipse. Normal, les points d'arrêt de travail d'amende dans le présent code.
Personne ne sait ce qui se passe ici???
Hmm, mais je reçois un autre message d'erreur indiquant que les noms de variables sont mal lorsque j'essaie d'utiliser un nom de variable qui n'existe pas dans la source...
La première étape consiste à déterminer si la décompilation est le problème. Ne la définition conditionnelle d'un point de rupture dans des conditions "normales" de code dans un projet Eclipse travail?
Donc, oui, il semble que les points d'arrêt des travaux dans mon code... ça Doit être quelque chose avec le code décompilé alors...
OriginalL'auteur kand | 2012-04-20
Vous devez vous connecter pour publier un commentaire.
Ce FAQ Eclipse page contient la syntaxe de la bonne CBP définition et raisons les plus communes pour eux de ne pas travailler. Dans votre cas, je pense que la règle suivante s'applique:
JD peut avoir fabriqué les noms de variables pendant la décompilation votre bocal, donc, à l'aide de "myObj" dans l'expression conditionnelle produit une erreur de compilation.
Vous avez raison! C'est étrange. Pas sûr de ce que pourrait être mal avec true==true.
Il ne semble pas être n'importe quel contenu sur la page de la FAQ. Est-il un moyen que je pouvais voir le tableau produit pour mon fichier de classe?
J'ai corrigé le lien (le"? " nécessaire pour être url-encodé en %3F), veuillez l'essayer maintenant. Autant que le local de la table var - son ce que vous voyez dans la vue Variables du débogueur.
Hmm eh bien, si c'est le cas, Eclipse semble avoir toutes les variables/variable noms corrects...
OriginalL'auteur mazaneicha
Peut-être des points d'arrêt conditionnels sont moins de travail en général. Considérons, par exemple:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=278146
OriginalL'auteur Keith Amling
Il peut être un bug dans eclipse. Ce qu'eclipse n'est tisser une nouvelle méthode ou quelque chose comme dans la source pour le fichier que vous définissez le point d'arrêt et le compiler. Si quelque chose va mal dans ce processus de votre point d'arrêt conditionnel sera mystérieusement échouer.
Vous pouvez suivre la démarche que j'ai utilisé ci-dessous, l'exécution de l'éclipse en debug pour essayer de traquer le problème:-
https://bugs.eclipse.org/bugs/show_bug.cgi?id=341232#c21
OriginalL'auteur Mumrah
En cas de "true == true" condition il faut juste ajouter de l'instruction return:
Pour le reste des problèmes de manque de variable locale de la table doit être l'explication. +1 pour Mazaneicha.
OriginalL'auteur ATrubka
En cas de "true == true" condition il faut juste ajouter de l'instruction return:
Pour le reste des problèmes de manque de variable locale de la table doit être l'explication. +1 pour Mazaneicha.
Si vous êtes en train de consulter l'argument d'une méthode par son nom, puis juste essayer de changer le nom pour "arg0", "arg1", etc.
Par exemple, vous pouvez faire comme ceci:
Il est facile de deviner le nom de la variable. Vient de mettre uncondidtional point d'arrêt et de voir la liste des variables dans la vue Variables.
OriginalL'auteur ATrubka
Simplement d'ajouter jusqu'à ce qui peuvent aider les autres comme je l'ai résolu ce problème après un certain temps. Je suis en utilisant JD-Eclipse pour le débogage, trop, quand je reçois ce problème.
Assurez-vous que tous les fichiers jar nécessaires sont dans le Classpath. Votre instruction conditionnelle peut être très simple, comme "return true"; mais une fois le "point d'arrêt conditionnel" case à cocher est cochée, il se pourrait que (je ne peux pas être sûr de soit) débogueur Eclipse va vérifier que l'Éclipse du projet de chemin de classe contre le champ d'application plus large et pas seulement que "return true".
Depuis que je suis en utilisant JD-Eclipse, je n'ai pas pris la peine d'ajouter tous les fichiers jar nécessaires. Le problème a été résolu après j'ai ajouté les fichiers jar dans le classpath du projet
Si vous utilisez le débogage à distance, vous pouvez aussi essayer de le configurer de sorte que votre projet Eclipse du JDK est compatible avec la cible de la JVM du JRE.
OriginalL'auteur Iwan Satria