|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-04-05 07:26 UTC] blackei2k at gmx dot de
Description:
------------
I get a segfault while running a script of mine. Here what apache's error.log says:
[Mon Apr 5 13:36:36 2004] [notice] child pid 2072 exit signal Segmentation fault (11)
It happens when i call the function
set_common_vars() which is a method of a class. If i run var_dump($o) ($o being an instance of the class set_common_vars is a member of) the script errors as it should withoot segfaulting.
The function ist defined as:
function sets_common_vars()
{
$this->strCat = (isset ($_GET['load']) ? $_GET['load'] : 'homepage');
$this->strGet = $_SERVER['PHP_SELF'] . '?' . 'load=' . $strCat;
return true;
}
This is very strange. I tried to build up a test-case as i thought it was related to the try {} catch blocks in the contructor, but it wasn't. My test-case did it's work as it was supposed to. I'm not sure what i can do, as the provided information above will most likely not help much tracing the bug to its source.
As the new object model is based on ZE2 i have classified this as an engine issue.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 06:00:01 2025 UTC |
I got a working (segfaulting) test-case here: <?php class foo { function __construct() { $a = 0 ; if ($a == 0) throw new Exception ('$a == 0 in foo::_constructor'); } function zar() { return 0; } } class bar extends foo { function __construct() { try { parent::__construct(); } catch (Exception $e) { echo $e->getMessage() . "\n"; } return true; } } $o = new bar; $o->zar(); ?> Hope that helps0x0811ffce in zend_std_get_method (object_ptr=0xbfe6aab8, method_name=0x835cce4 "zar", method_len=3) at /usr/src/php/php5/Zend/zend_object_handlers.c:626 626 if (zend_hash_find(&zobj->ce->function_table, lc_method_name, method_len+1, (void **)&fbc) == FAILURE) { (gdb) bt #0 0x0811ffce in zend_std_get_method (object_ptr=0xbfe6aab8, method_name=0x835cce4 "zar", method_len=3) at /usr/src/php/php5/Zend/zend_object_handlers.c:626 #1 0x0816257b in ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER (execute_data=0xbfe6ac10) at zend_vm_execute.h:20272 #2 0x0812c3c9 in execute (op_array=0x83568e4) at zend_vm_execute.h:78 #3 0x0810ea63 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php/php5/Zend/zend.c:1059 #4 0x080dcd78 in php_execute_script (primary_file=0xbfe6d0b0) at /usr/src/php/php5/main/main.c:1653 #5 0x08186a5f in main (argc=2, argv=0xbfe6d174) at /usr/src/php/php5/sapi/cli/php_cli.c:954