At 10:34 AM 9/9/2004 +0200, Derick Rethans wrote:
On Wed, 8 Sep 2004, Sterling Hughes wrote:

> > - Warning: Things might break so keep us posted on how things are going.
> > (Dmitry, Andi)


execute_internal changed -> breaks Xdebug:
(gdb) run run-tests.php
Starting program: /usr/local/bin/php run-tests.php
[Thread debugging using libthread_db enabled]
[New Thread 1081029024 (LWP 7866)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1081029024 (LWP 7866)]
0x408fba9c in xdebug_execute_internal (current_execute_data=0xbfffd480,
return_value_used=1) at /dat/dev/php/xdebug/xdebug.c:1083
1083 fse = add_stack_frame(edata, edata->op_array, XDEBUG_INTERNAL TSRMLS_CC);
(gdb) print edata
$1 = (zend_execute_data *) 0x0
(gdb) bt
#0 0x408fba9c in xdebug_execute_internal (current_execute_data=0xbfffd480,
return_value_used=1) at /dat/dev/php/xdebug/xdebug.c:1083
#1 0x08303bd4 in execute (op_array=0x85eda6c) at zend_vm_handlers.h:2206
#2 0x408fb378 in xdebug_execute (op_array=0x85eda6c)
at /dat/dev/php/xdebug/xdebug.c:1041
#3 0x082dfb87 in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at /dat/dev/php/php-5.1dev/Zend/zend.c:1054
#4 0x08299241 in php_execute_script (primary_file=0xbffff920)
at /dat/dev/php/php-5.1dev/main/main.c:1634
#5 0x0833782a in main (argc=2, argv=0xbffff9f4)
at /dat/dev/php/php-5.1dev/sapi/cli/php_cli.c:943



> How could someone like the APC optimizer now hook into this system and > add a new instruction without modifying the executor?

And what about discussing those things up-front? You guys go ballistic
when Marcus added something to the engine but have no problem doing such
a major change (which I can see is flawed), without mentioning a single
word about it to internals.

Because we're maintaining the engine and I mentioned already that we're doing some performance work on it.
I have no problem if you want to roll it back and discuss first. Be my guest.
I didn't see it being a problem because:
a) It improves performance.
b) It doesn't seriously differ as far as opcode replacement from PHP 4's switch().


The tag before commiting the patch is PRE_ZEND_VM_DISPATCH_PATCH

Andi

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



Reply via email to