Emiliano <[EMAIL PROTECTED]> wrote:
> Matthias Gelbhardt wrote:
>
> > ># gdb /path/to/httpd
> > > gdb) run -X
> > >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x40693681 in php_rinit_midgard (type=1, module_number=20) at midgard.c:390
> > 390 MGDG(rcfg) = (midgard_request_config *)
>
> While this Should Never Happen(tm), try inserting, the following after
> line 388:
>
> if (r == NULL) {
> MGDG(rcfg) = NULL;
> MGDG(dcfg) = NULL;
> php_error(E_ERROR, "Server context missing");
> return SUCCESS;
> }
>
> David, where would this log entry appear?
this would appear on the page and/or in apache's log.
Again, testing r against NULL won't do what you want, I've experienced that r
stayed normal, while r->request_config simply changed from a normal pointer
address (like 0x8b5f1234) to 0x1000 (dec 65536, seems to be a error code, or a
flag) between mod_midgard and PHP_MINIT... but as I said before, once apache
was compiled with debug symbols, all worked fine.
If this can help someone, the procedure to find where it changed was to
execute httpd -X in gdb, then to put a breakpoint on line 1340 of mod_midgard.c:
ap_set_module_config(r->request_config, &midgard_module, (void *) rcfg);
then put a watch on the address of r->request_config
(gdb) watch (void *)&(r->request_config)
and continue the execution, but of course it stopped in the middle of httpd
which it didn't have the sources...
> Emile
--
Best regards, David Guerizec
http://www.guerizec.net/david/ http://www.imuable.org/
http://www.midgard-project.org/ http://www.aurora-linux.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]