Could you please explain? I have no clue what strace(1) is. Sorry for being a perl/linux newbie :) please bear with me.
Brian | [reply] |
Basically, if you run strace -o logfile program, it will run "program", logging all of it's system calls to the file "logfile". It mostly looks like incomprehensible garbage, as there are many system calls you don't care about. But you will also be able to see file accesses, in particular where apache tries to look for the library in question (search for the name of the module, you will see something like a "stat" or an "access" call foreach (@INC)). All of the system calls being made should have man pages - usually in section 2 (eg "man 2 fstat"), although you may need relevant "development" packages for your C library for this to work (the package is called manpages-dev under Debian, but could be something like libc6-dev).
If you want to trace a daemon, you should give strace a few extra options (see the man page). Replacing a call to "httpd" with "strace -fae -o /tmp/strace.$$ httpd" wouldn't be a bad call.
There are likely to be simpler ways to help with this particular problem, but in general if something is misbehaving and you don't have a clue why, strace can come to the rescue.
| [reply] |