From this article I learned that strace can be called to analyse an already running process (-p).
strace `ps -C httpd -o pid= |xargs -Ix echo -n '-p x '`Why isn't this process invocation picking up my changed lib file? (strace, see if the changed file is being opened)
What are the exact http req/responses being made during the problem? (strace server or proxy with large -s value to see all read/write/sendmsg/recvmsg etc)
This tool fails when run as user X, probably a perms problem but which file? (strace, look for EPERM failures, probably to open())
Which /proc files are necessary to the operation of tool X (useful when checking what will and won't run in a sandbox like dotcloud)?
Main restrictions that I know of(in practice only the first is sometimes a problem to me):
- http/ssl hides the buffer info from 'strace -s'. Another good reason for ssl offloading :-) - IO can occur via memory reads/writes after mmap(), which strace can't see
ltrace is a pretty nice complement too (trace inside dynamically loaded libs).
A handy addition to the warrior's toolkit: http://linux.die.net/man/1/ltrace !
Has anyone seen anything like that? I think I've searched pretty extensively.