Debug eclipse IDE lui-même

J’aimerais apprendre à déboguer l’IDE de l’éclipse. À l’époque où j’utilisais VS pour le développement de .NET, je peux attacher un VS à un processus à tout moment et commencer à tracer le problème. J’espère qu’il y aura quelque chose de similaire avec eclipse, mais en tant que débutant dans le monde Java, je n’en sais rien.

Mon éclipse s’est récemment arrêtée lorsque je l’ai exécutée avec iBUS (sur Ubuntu 9.10). J’espère que je pourrai découvrir ce qui accroche vraiment mon éclipse et éviter cela (Imaginez que votre éclipse se bloque et que tous vos fichiers ouverts soient fermés. Cela me rend fou).

Modifiez votre fichier eclipse.ini en ajoutant ce qui suit au bas (sous -vmargs):

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

Ensuite, dans une autre Eclipse de la même version, vous pouvez importer les plug-ins qui vous intéressent pour le débogage. Fichier -> Importer … -> Développement de plug-in -> Plug-ins et fragments. Importer depuis la plate-forme active et Importer en tant que “Projets avec des dossiers sources”, dans l’onglet suivant, sélectionnez les plug-ins qui vous intéressent.

Définissez les points d’arrêt comme il convient.

Créez ensuite dans les configurations de débogage, créez une nouvelle “application Java distante”. localhost, port 8000. Ajoutez les projets Java sur l’onglet source et déboguer.

Une chose que vous pouvez faire avec n’importe quelle application Java pour voir ce qui se passe en ce moment est de lui envoyer un kill -QUIT . Cela entraînera la JVM à vider les traces de la stack pour tous ses threads sur stdout. Faites-le trois fois avec une seconde entre les deux et vous pouvez voir quels sont les fils qui ne bougent pas bien.

Une autre chose à essayer est d’attacher une JConsole au processus en cours.

Il y a un fil à propos de la cause de l’éclipse gelée .

L’une des solutions suggère de démarrer Eclipse avec l’option -consolelog . Cela peut être utile pour jeter un coup d’œil sur ce qui se passe (avant de faire le débogage).

À l’époque où j’utilisais VS pour le développement de .NET, je peux attacher un VS à un processus à tout moment et commencer à tracer le problème.

Le débogage à distance est également possible en Java avec Java Platform Debugger Architecture (JPDA), il vous suffit de démarrer l’application que vous souhaitez déboguer avec le débogage distant activé. Voici un article montrant comment procéder et comment configurer Eclipse pour déboguer une application de suppression.

Notez qu’à partir de Java 5, vous devez préférer l’option -agentlib:jdwp options -Xdebug et -Xrunjdwp , comme expliqué dans les Options d’invocation de VM Sun.

Mise à jour: Eclipse est une application Java, il devrait donc être possible d’append les options mentionnées dans l’article dans eclipse.ini . Je n’ai jamais essayé cela (j’ai raté le fait que vous vouliez déboguer Eclipse lui-même).

Il existe essentiellement deux manières de déboguer une application Java (par exemple Eclipse). Vous pouvez utiliser JConsole, mais cela ne vous donnera pas beaucoup de détails. Pour joindre JConsole, vous devez activer le débogage à distance. Cela nécessite un argument JVM que vous pouvez écrire dans le fichier eclipse.ini juste à côté de l’exécutable Eclipse.

Une autre option consiste à démarrer un environnement d’exécution à partir d’Eclipse: il est utilisé pour tester vos propres plug-ins, mais comme les plug-ins Eclipse sont identiques, il est possible de démarrer une session de débogage avec une application Eclipse. Pour ce faire, vous devez disposer d’au moins un plug-in dans votre espace de travail (par exemple, créer un nouveau projet de plug-in hello world) et vous pouvez ensuite le déboguer en tant qu’application Eclipse.