Graham Dumpleton
grahamd at dscpl.com.au
Tue Dec 13 05:52:53 EST 2005
On 13/12/2005, at 9:44 PM, Daniel S. Reichenbach wrote: > Hi again, > >> Now use a web browser to access the URL which gives you the problem. >> >> If everything goes as expected, Apache will crash and gdb will throw >> you >> back to its prompt. Enter "where" command to get stack trace of where >> it >> crashed. > I have followed your instructions step by step and tried opening the > URL. The result was expected, auth window opened, valid username and > password enter and then again Zero Reply from the server and again it > show segfault in error log. But *sigh* in gdb nothing happened. It > still stood there telling me it was Continuing. > > What next? When you used "ps" to find instances of "httpd" which were running, how many were there? If there was a pair like in my example, use the pid of the other. Ie., instead of the lowest pid of the pair, used the highest. If there are more than two, or that still doesn't help, you may have to change your Apache config so that it only starts up at most one child subprocess. That way when you are attached to it with gdb, you will be guaranteed the request will be handled by the child process you are debugging. Instead of -DONE_PROCESS, you might also instead try the -X option. Anyway, you just need to play with it until you work out a reliable way of ensuring the request is handled by the process attached to gdb. The only other alternative is to see if you can find a "core" file which has been dumped by Apache when it crashes and run gdb against it: gdb /usr/local/apache-2.0/bin/httpd core Then use "where" command to get stack trace. Time for me to sleep, so I'll see how you go in the morning. If you get a stack trace, others here may be able to help you interpret it. Graham
|