Como administrador de sistemas, a veces me enfrento a situaciones en las que un programa se comporta de manera anormal, sin crear errores ni mensajes de error sin sentido.
En el pasado, antes de que llegara Java, había dos contramedidas:
- Si nada más ayuda - RTFM ;-)
- Si incluso 1. no ayuda, rastree las llamadas al sistema y vea qué está sucediendo
Normalmente lo uso strace -f
para esta tarea con Linux (otros sistemas operativos tienen herramientas de rastreo similares). Ahora, si bien esto generalmente funciona bien para cualquier programa antiguo, la traza se vuelve muy borrosa cuando se hace lo mismo en un proceso de Java . Hay tantas llamadas al sistema que aparentemente no están relacionadas con ninguna acción real, que es terrible buscar en ese basurero.
¿Hay mejores formas de hacerlo (si el código fuente no está disponible)?