ID:               26418
 User updated by:  danielc at analysisandsolutions dot com
 Reported By:      danielc at analysisandsolutions dot com
-Status:           Feedback
+Status:           Closed
 Bug Type:         Zend Engine 2 problem
 Operating System: Windows 2000
 PHP Version:      5CVS-2003-12-1
 New Comment:

Works fine so far.  Thanks.


Previous Comments:
------------------------------------------------------------------------

[2003-12-15 09:48:01] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

Can not reproduce..


------------------------------------------------------------------------

[2003-12-01 13:41:57] danielc at analysisandsolutions dot com

#! c:/progra~1/php/cli/php
<?php

/*
 * http://bugs.php.net/bug.php?id=26418
 *
 * Notice the inclusion of PEAR's DB class at the bottom.  Make sure
 * your include_path or the path in the require statement below is
 * correct.
 *
 * The crashes involve a weird combination of factors.  The factors
 * can be rearranged to cause the crashes to vanish.
 *
 * If the parent class' name is 15 characters long, it crashes, but if
 * it's 14 or 16 characters long, it does not.  But the length of the
 * class name isn't _really_ the problem.
 *
 * For example, the length of the method names and the existence of
 * parameters play a role too.  See the comment in the class for more
 * details.
 */


//class A2345678901234 {
class A23456789012345 {
//class A234567890123456 {
}


//class B extends A2345678901234 {
class B extends A23456789012345 {
//class B extends A234567890123456 {
    function foo() {}
    function goo($Directory) {}

    /*
     * Crashes if the next method name is <= 21 characters long.
     * But doesn't crash if both methods are uncommented.
     * Similarly, doesn't crash if the parameter, $Directory, is
removed
     * from method goo(), above.
     */
    function a2345689012345678901() {}
//    function a23456890123456789012() {}

}

require_once('DB.php');

?>

------------------------------------------------------------------------

[2003-11-26 02:24:47] danielc at analysisandsolutions dot com

Description:
------------
Using the latest snapshot, php5-win32-200311260330.zip, when a script
loads up a bunch of class files, a Dr Watson error dialog appears
saying PHP has crashed.  Note, I'm just including the files, not
creating an object via "new."

I've tried to pin this down to some particular lines of code, but have
been unable to find something in particular.

While certain combinations of my class files and PEAR::DB create the
crash, others don't.

This code worked fine until now, so I don't think it's the content.  In
addition, I've tweaked PEAR.php and DB.php so methods that return by
reference are always returning variables.

Below is an excerpt from a dump file as examined by WinDbg:

(5e4.600): Access violation - code c0000005 (!!! second chance !!!)
eax=00866dfc ebx=00d9ad80 ecx=6e692e67 edx=00000063 esi=00d9c5e0
edi=00d9c658
eip=100dcf91 esp=0012fae8 ebp=78001db0 iopl=0         nv up ei pl nz na
pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000            
efl=00000202
*** WARNING: Unable to verify checksum for php4ts.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols
for php4ts.dll - 
php4ts!zend_ts_hash_rehash+481:
100dcf91 89510c           mov     [ecx+0xc],edx    
ds:0023:6e692e73=????????




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=26418&edit=1

Reply via email to