As a sysadmin I sometimes face situations, where a program behaves abnormally, while not creating errors at all or creating nonsense error-messages.
In the past - before java came in - there were two counter-measures:
- If nothing else helps - RTFM ;-)
- If even 1. does not help - trace the system-calls and see what is happening
I usually use
strace -f for this task with Linux (other OS have similar trace-tools). Now while this usually works well for any old-fashioned program, the trace gets very fuzzy when doing the same on a java-process. There are so many system-calls seemingly unrelated to any real action, that it is terrible to search through such a dump.
Are there better ways to do that (if the source-code is not available)?