On Wed, 2011-05-18 at 00:53 +0200, Rainer Jung wrote:

GDB allows to also get details on the values of variables used, step
through the code etc. You give gdb two arguments, the path to your httpd
binary and the process ID of the CPU consuming process. Once the gdb
prompt is shown, you can enter

thread apply all bt full

I've recompiled apache and mod_jk with apr 1.4.4, also removed php and switched to prefork to make debugging easier, below is the GDB output of the process that is hanging at 100% cpu.

Apache starts ok and does not start eating at the cpu untill an http request is made to it.

(gdb) thread apply all bt full

Thread 1 (Thread 8014041c0 (LWP 100847/httpd)):
#0  0x0000000801157c1e in strchr () from /lib/libc.so.7
No symbol table info available.
#1  0x0000000800d2430f in apr_fnmatch (pattern=0x80155863a "/WEB-INF/*", string=0x803745c16 "", flags=Variable "flags" is not available.
) at strings/apr_fnmatch.c:230
escape = 1
slash = Variable "slash" is not available.

Please let me know if i should run any other commands in GDB.