Impossible de “strace -p” sur un processus JBoss en cours d’exécution

J’essaie d’utiliser “strace -p” pour attacher à un processus JBoss déjà en cours d’exécution. JBoss utilise le JDK Java 1.5.0_15. Malheureusement, cela ne fonctionne pas – je n’ai qu’un seul résultat futex ():

# strace -p 3388 Process 3388 attached - interrupt to quit [ Process PID=3388 runs in 32 bit mode. ] futex(0x8f18f7c, FUTEX_WAIT_PRIVATE, 1, NULL  

Strace fonctionne pour tous les autres programmes, mais pas pour JBoss. Cela semble fonctionner correctement lorsque je lance le processus par strace. Cela ne fonctionne tout simplement pas lorsque j’essaie de me connecter à un processus en cours d’exécution.

J’utilise Linux 2.6.18 64 bits avec un JDK Java 32 bits (RedHat Enterprise Linux 5.3 si c’est important).

Mise à jour n ° 1:

J’ai essayé de l’exécuter avec “-d”, mais la sortie ne semble pas plus perspicace, du moins pour moi:

 [root@]# strace -d -e verbose=all -p 3388 Process 3388 attached - interrupt to quit [wait(0x137f) = 3388] pid 3388 stopped, [SIGSTOP] [wait(0x57f) = 3388] pid 3388 stopped, [SIGTRAP] [ Process PID=3388 runs in 32 bit mode. ] futex(0x8f18f7c, FUTEX_WAIT_PRIVATE, 1, NULL 

S’il y a plusieurs threads dans ce processus, vous devrez donner plusieurs options -p à strace , en spécifiant l’ID de chacun. Il semble que vous ayez réussi à tracer le thread parent d’origine, et il ne fait rien d’autre que d’attendre que d’autres threads se terminent.

(La raison pour laquelle cela fonctionne lorsque vous lancez la commande depuis strace est que, par défaut, strace récupère les nouveaux processus enfants créés et les trace également).

Peut-être que vous pouvez essayer ceci:

strace -F -p PID

Avez-vous essayé d’utiliser strace -d -p NNN pour obtenir une sortie de débogage strace?

Peut-être append un -e verbeux?

Est-ce que strace a été installé setuid à root afin que vous puissiez examiner n’importe quel processus?