in reply to Debugging running processes
What OS are you running on? If Linux, I would first try strace (hey, maybe you'll get lucky :)). If you can't predict when the problem will occur, pipe the strace output to a perl script that rolls the file when it gets big, and keeps the last 10 or so around. If you are running on Solaris, you will probably have more success with dtrace, but this is non-trivial as it has its own programming language ('D').
You could also add lots of debug statements at potential problem spots, that only print when a global is set. You could trigger setting the global on a couple of different things. If you have a main subroutine that is called per-message, you could time its operation. When it gets above a certain threshold, turn on debugging. Or, you could set up a CPU monitor script that sent SIGUSR1 when it got high, and have your program catch it and turn debugging on.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Debugging running processes
by kappa (Chaplain) on Oct 31, 2008 at 23:09 UTC |