web-dev-qa-db-fra.com

Comment déboguer compilé Java dans Eclipse

Je me demande s'il existe des solutions pour Eclipse IDE to debug Java code for which I have no source, ie to debug dynamically decompiled code, step through it, etc.? J'ai essayé d'utiliser JD-Eclipse , JadClipse , et ces plug-ins fonctionnent très bien si je veux regarder certains fichiers de classe, mais pendant le débogage, je obtenir "Source non trouvée" - comment puis-je "attacher" ces plug-ins pour "fournir" la source?

Mon environnement:

  • Eclipse 3.5
  • Windows XP (mais je cherche une solution multiplateforme, si possible)

Je vous remercie.

36

J'ai une bonne expérience avec Jadclipse - http://jadclipse.sourceforge.net/wiki/index.php/Main_Page - il existe un site de mise à jour à http: //jadclipse.sf. net/mise à jour

Pour de meilleurs résultats, utilisez jad et configurez-le pour répertorier les numéros de ligne en tant que commentaires, ce qui permettra la sortie où le code se trouve sur la ligne correcte. C'est le meilleur pour les sessions de débogage.

Définissez-le ensuite comme la vue par défaut pour les classes. Consultez la documentation pour plus de détails. Cela fonctionne bien pour moi.

13

J'ai le même problème. Aujourd'hui, aucun décompilateur n'est efficace pour déboguer compilé Java. Je travaille sur JD-Eclipse. Dans les 3 à 6 prochains mois, la disposition de JD-Eclipse devrait être vraiment améliorée. Nous va commencer à déboguer des classes sans sources et à résoudre certains problèmes insolubles.

15
Emmanuel Dupuy

Fragment de réalignement pour le plug-in JD-Eclipse Host. Ce plug-in pour Eclipse rend les numéros de ligne de code décompilés réellement appropriés aux numéros de ligne du fichier de classe Java. En conséquence, il devient possible de déboguer sans code source. https://sourceforge.net/projects/realignmentjd/

6
avkosinsky

J'espère que ce plugin sera utile. JD-Eclipse

Dans Eclipse, ouvrez Fenêtre -> Préférences -> Général -> Editeurs -> Associations de fichiers Sélectionnez * type de fichier .class Associez-le à JD-Eclipse Définissez-le par défaut

Bonne chance

3
user231960

Vous pouvez utiliser JD-GUI pour décompiler les fichiers jar et enregistrer le tout dans un fichier Zip source qui peut ensuite être ajouté à la liste de recherche source (via Configure Build Path).

Le problème avec JD-GUI est que les numéros de ligne sont sortis, ce qui rend le débogage très difficile, vous devez donc

  1. extraire les fichiers source du fichier Zip source décompilé
  2. Exécutez le script trouvé à https://bushlife.com.au/groups/python/wiki/7539a/Adjust_line_numbers_in_file.html
  3. Compressez la source générée en arrière
  4. ajoutez-le comme chemin source associé à votre fichier Java - en utilisant Configure Build Path après avoir cliqué avec le bouton droit sur le fichier jar dans votre projet Java.
3
sweetfa

La solution qui a fonctionné pour moi utilise le JD-Eclipse après avoir appliqué le patch: http://Java.decompiler.free.fr/?q=node/464

Il s'agit d'une extension de jd-Eclipse qui réaligne le code après la décompilation.

Lors du débogage avec Eclipse, il vous suffit d'avoir les fichiers jar dans le chemin de classe et c'est tout! Il n'est pas nécessaire de décompiler le pot entier, de le réaligner ou quoi que ce soit ... Déboguez et soyez heureux :-)

Voici comment procéder: http://gauchoacomecable.wordpress.com/2011/10/14/Eclipse-debug-Java-without-source-code-jd-Eclipse-and-realignment/

2
Rafael

Décompilez toutes les classes, placez tous les fichiers Java ordonnés dans la bonne hiérarchie (répertoire pour le package, etc.), puis ajoutez-les comme source du pot d'origine en cliquant avec le bouton droit sur le fichier jar - > Java Pièce jointe source -> Dossier externe.

Vous pouvez également les avoir dans un dossier du projet (cliquez sur Workspace dans ce cas)

2
David Rabinowitz

J'ai amélioré le plugin "Realignment for JD Eclipse" pour aligner correctement les énumérations et les champs et je l'ai publié avec JD Eclipse sur mon propre site de mise à jour: http://mchr3k-Eclipse.appspot.com/

Détails sur mes modifications: http://mchr3k-coding.blogspot.co.uk/2012/07/realignment-for-jd-Eclipse.html

0
mchr