Strace - The Sysadmin's Microscope (2010)
blogs.oracle.com
blogs.oracle.com
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 !
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 '`Has anyone seen anything like that? I think I've searched pretty extensively.