En tant qu'administrateur système, je suis parfois confronté à des situations où un programme se comporte anormalement, sans créer d'erreurs ou créer des messages d'erreur absurdes.
Dans le passé - avant l'arrivée de Java - il y avait deux contre-mesures:
- Si rien d'autre ne vous aide - RTFM ;-)
- Si même 1. n'aide pas - tracez les appels système et voyez ce qui se passe
J'utilise habituellement strace -f
pour cette tâche avec Linux (d'autres OS ont des outils de trace similaires). Maintenant, alors que cela fonctionne généralement bien pour tout programme à l'ancienne, la trace devient très floue lorsque vous faites la même chose sur un processus java . Il y a tellement d'appels système apparemment sans rapport avec une action réelle, qu'il est terrible de chercher dans un tel vidage.
Y a-t-il de meilleures façons de le faire (si le code source n'est pas disponible)?