Jan Schneider wrote:
> Hi,
> 
> the segfaults still occur, though on a different machine (pretty vanilla
> suse 8.0). But now I get a more useful bt:
> 
> 0x4055778f in _efree (ptr=0x83476e4)
>     at /home/jan/software/php4/Zend/zend_alloc.c:229
> 229             REMOVE_POINTER_FROM_LIST(p);
> (gdb) bt
> #0  0x4055778f in _efree (ptr=0x83476e4)
>     at /home/jan/software/php4/Zend/zend_alloc.c:229
> #1  0x405664a1 in _zval_dtor (zvalue=0x83456bc)
>     at /home/jan/software/php4/Zend/zend_variables.c:44
> #2  0x4055e4c1 in _zval_ptr_dtor (zval_ptr=0x40605714)
>     at /home/jan/software/php4/Zend/zend_execute_API.c:293
> #3  0x4057516d in execute (op_array=0x835c0c4)

If you could tell us what execute() is trying to execute,
it would be useful.

Did you read my email? (and the URL?)
http://bugs.php.net/bugs-generating-backtrace.php

FROM the URL.
    *  Sample gdb session
(gdb) bt
#0  0x080ca21b in _efree (ptr=0xbfffdb9b) at zend_alloc.c:240
#1  0x080d691a in _zval_dtor (zvalue=0x8186b94) at zend_variables.c:44
#2  0x080cfab3 in _zval_ptr_dtor (zval_ptr=0xbfffdbfc) at zend_execute_API.c:274
#3  0x080f1cc4 in execute (op_array=0x816c670) at ./zend_execute.c:1605
#4  0x080f1e06 in execute (op_array=0x816c530) at ./zend_execute.c:1638
#5  0x080f1e06 in execute (op_array=0x816c278) at ./zend_execute.c:1638
#6  0x080f1e06 in execute (op_array=0x8166eec) at ./zend_execute.c:1638
#7  0x080d7b93 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at zend.c:810
#8  0x0805ea75 in php_execute_script (primary_file=0xbffff650) at main.c:1310
#9  0x0805cdb3 in main (argc=2, argv=0xbffff6fc) at cgi_main.c:753
#10 0x400c91be in __libc_start_main (main=0x805c580 , argc=2, ubp_av=0xbffff6fc,
               init=0x805b080 <_init>, fini=0x80f67b4 <_fini>, rtld_fini=0x4000ddd0 
<_dl_fini>,
               stack_end=0xbffff6ec) at ../sysdeps/generic/libc-start.c:129
(gdb) frame 3
#3  0x080f1cc4 in execute (op_array=0x816c670) at ./zend_execute.c:1605
(gdb) print (char 
*)(executor_globals.function_state_ptr->function)->common.function_name
$14 = 0x80fa6fa "pg_result_error"
(gdb) print (char *)executor_globals.active_op_array->function_name
$15 = 0x816cfc4 "result_error"
(gdb) print (char *)executor_globals.active_op_array->filename
$16 = 0x816afbc "/home/yohgaki/cvs/php/DEV/segfault.php"
(gdb)


The instruction in the url should be enough to get info needed.
Once you get function name and file name caused the segfault,
it should be easy to write short script reproduce the segfault.

--
Yasuo Ohgaki


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

Reply via email to