- strace can display the latest system calls and their result
- lsof can show open files
- syslog can be very effective when log messages are written to track progress. Allows you to place the problem in smaller areas. Also log messages are correlated with other messages from other systems, this often causes interesting results.
- wireshark if applications use sockets to make the chatter of wire visible.
- ps ax + top can show that your application is in a busy cycle, that is, it runs all the time, sleeping or blocking in IO, consuming the processor, using memory.
Each of them can provide some information that together create a picture of the problem.
When using gdb, it may be useful to start a kernel dump when the application is locked. Then you have a static snapshot that you can analyze using post mortem debugging at your leisure. You can run them using a script. You quickly create a set of snapshots that you can use to test your theories.
source share