[Note the Reply-To]

You're getting closer.  Unfortunately, the backtrace you sent says
that gdb attached to a running httpd and it happened to be sitting in
select() when gdb attached on to it.  At which point you grabbed the
backtrace and exited, killing the httpd before recreating the problem.

Instead, you need to cause the problem while debugging the httpd and,
assuming it segfaults when in gdb, get the backtrace from where the
problem occurred.

Try the first recipe from SUPPORT:

 % cd mod_perl-x.xx
 % touch t/conf/srm.conf
 % gdb ../apache_x.xx/src/httpd
 (gdb) run -X -f `pwd`/t/conf/httpd.conf -d `pwd`/t
 [now make request that causes core dump]
 (gdb) bt

or do what you did but gdb's 'continue' command to get the httpd to run
again and make the offending request over and over until you get it to
seg fault, *then* do the 'where'/'bt' command.

The stack trace needs to be from the point of failure, not from some
place in a (so far) healthy server...

If you have a core file from the segfault, you can also do that recipe
from SUPPORT:

 % gdb httpd core

and do the 'bt' that's often a bit easier.

- Barrie

Reply via email to