Hello Tony,

according to my backtrace, this line (main/main.c:1491) is not processed. 

366             if (PG(expose_php)) {
(gdb) p core_globals_id
$4 = 0

The backtrace follows:

Program received signal SIGSEGV, Segmentation fault.
0x40bb4449 in php_apache_add_version (p=0x80a40a8)
    at /usr/local/src/php-5.2.2/sapi/apache2handler/sapi_apache2.c:366
366             if (PG(expose_php)) {
(gdb) bt full
#0  0x40bb4449 in php_apache_add_version (p=0x80a40a8)
    at /usr/local/src/php-5.2.2/sapi/apache2handler/sapi_apache2.c:366
        tsrm_ls = (void ***) 0x83a19b0
#1  0x40bb4537 in php_apache_server_startup (pconf=0x80a40a8, plog=0x80ce150,
    ptemp=0x80d0158, s=0x80be308)
    at /usr/local/src/php-5.2.2/sapi/apache2handler/sapi_apache2.c:417
        data = (void *) 0x1
        userdata_key = 0x40c704e7 "apache2hook_post_config"
#2  0x080691fd in ap_run_post_config ()
No symbol table info available.
#3  0x0806f622 in main ()
No symbol table info available.

Regards,

Oliver

Am Dienstag, 8. Mai 2007 10:21 schrieben Sie:
> On 05/08/2007 05:36 AM, Oliver Block wrote:
> > Hello,
> >
> > I am getting a SIGSEGV when compiling php-5.2.2.
> >
> > gdb breaks up at the if statement of the following function
> >
> > static void php_apache_add_version(apr_pool_t *p)
> > {
> >         TSRMLS_FETCH();
> >         if (PG(expose_php)) {
> >                 ap_add_version_component(p, "PHP/" PHP_VERSION);
> >         }
> > }
> >
> > It only occurs when --enable-maintainer-zts is used.
> >
> > main/php_globals.h:
> > # define PG(v) TSRMG(core_globals_id, php_core_globals *, v)
> > extern PHPAPI int core_globals_id;
> > #else
> > # define PG(v) (core_globals.v)
> > extern ZEND_API struct _php_core_globals core_globals;
> > #endif
> >
> > TSRM/TSRM.h
> > #define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id)         ((rsrc_id)-1)
> > #define TSRMG(id, type, element)        (((type) (*((void ***) tsrm_ls))
> > [TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
> >
> > GDB tells me that core_globals_id == 0 which leads to an index of -1 --
> > if I interpret the results correctly.
>
> Either GDB is wrong or your build is badly broken.
> core_globals_id is initialized in main/main.c, line 1491
>
> *rsrc_id = TSRM_SHUFFLE_RSRC_ID(id_count++);
> #define TSRM_SHUFFLE_RSRC_ID(rsrc_id)       ((rsrc_id)+1)

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to