Comment faire pour Forcer le Thread Dump dans Eclipse?
Je suis le lancement d'une application Weblogic à l'intérieur de l'Éclipse par la BEA Weblogic Server v9.2 runtime environment. Si c'était de courir à partir de la ligne de commande, je ferais un ctrl-BREAK pour forcer un thread dump. Est-il un moyen de le faire dans Eclipse?
Vous devez vous connecter pour publier un commentaire.
En effet (merci VonC à point pour le fil), Dustin, dans un commentaire de son message, en points de jstack.
J'ai une petite application Java (avec interface graphique) dans Eclipse, je peux voir l'javaw.exe dans Windows gestionnaire de processus et de son PID, 7088 (c'est encore plus simple dans Unix, bien sûr).
Si je tapez à l'invite de commande
jstack 7088
, j'ai voulu vidage de pile par thread.Cool.
Serait mieux si on pouvait le faire directement à partir de l'Éclipse, mais c'est déjà utile tel que.
vérifier SendSignal:
http://www.latenighthacking.com/projects/2003/sendSignal/
Vous pouvez le faire lorsque vous êtes en mode débogage: aller à la vue débogage dans le débogage, cliquez sur le processus que vous avez lancé et cliquez sur pause, vous obtiendrez un graphique de la pile de l'ensemble de vos processus.
Note : ceci fonctionne également lors de l'utilisation de débogage à distance, vous n'avez pas besoin de lancer weblogic d'eclipse, vous pouvez la lancer sur son propre, ouvrez le débogage des ports et de créer une "distance de l'application java configuration debug" pour cela.
Eclipse Wiki: Comment Signaler un Blocage répertorie toutes les options possibles de la création d'un thread dump dans Eclipse. En fonction de la situation concrète, l'un ou l'autre peut travailler mieux, mon favori personnel sur Windows est la Adaptj Stacktrace outil.
StackTrace est une autre option que vous pourriez essayer. Les caractéristiques:
si vous préférez une INTERFACE utilisateur basée solution visualvm pourrait être un bon choix. (c'est l'avantage est aussi qu'il est distribué avec le JDK)
De prendre le thread dump dans visualvm:
Threads
(onglet) ->Thread Dump
(bouton)jvisualvm
fourni avec java machine. Sur ma machine linux, il est dans:/usr/lib/jvm/java-7-oracle/bin/jvisualvm
Avez-vous essayé de lancer eclipse avec java.exe au lieu de javaw.exe (dans votre eclipse.ini) ?
Qui pourrait vous donner de la console dont vous avez besoin, comme décrit dans ce bug et dans ce message.
D'autres idées (en terme d'options java) peut être dérivée à partir de cette d'autres DONC, la question.
Vous pouvez vous connecter par le biais de la JVisualVM et obtenir un thread dump. Juste à droite, cliquez sur le nœud d'application à partir de l'arborescence Applications et sélectionnez "Thread dump"
Sur linux, au moins, vous pouvez faire un
ps -ef | grep java
pour obtenir le PID et puis faire unkill -3 PID
et il sera de sortie à l'Éclipse de la console.