ID: 35360
Updated by: [EMAIL PROTECTED]
Reported By: phpbug-david at tulloh dot id dot au
-Status: Open
+Status: Assigned
-Bug Type: CGI related
+Bug Type: Scripting Engine problem
Operating System: Debian Linux
PHP Version: 5.1.0
-Assigned To:
+Assigned To: dmitry
New Comment:
Dmitry, can you check this out please?
Previous Comments:
------------------------------------------------------------------------
[2005-11-24 09:57:38] phpbug-david at tulloh dot id dot au
Removing the __construct line will cause the script to Segfault when
called with php -n -a.
Here is a backtrace for test1 with the construct line removed:
#0 0x0819a103 in zend_do_fcall_common_helper_SPEC
(execute_data=0xbfffc220, tsrm_ls=0x8290018)
at zend_vm_execute.h:131
#1 0x08199f7c in execute (op_array=0x833b308, tsrm_ls=0x8290018) at
zend_vm_execute.h:88
#2 0x0816207b in execute_new_code (tsrm_ls=0x8290018)
at /home/lod/Downloads/php-5.1.0/Zend/zend_execute_API.c:1151
#3 0x0814520f in zendparse (tsrm_ls=0x8290018) at
Zend/zend_language_parser.c:2732
#4 0x0814a645 in compile_file (file_handle=0x2, type=2,
tsrm_ls=0x8290018)
at Zend/zend_language_scanner.c:3168
#5 0x0816db91 in zend_execute_scripts (type=8, tsrm_ls=0x8290018,
retval=0x0, file_count=3)
at /home/lod/Downloads/php-5.1.0/Zend/zend.c:1082
#6 0x08124aa4 in php_execute_script (primary_file=0xbffffab0,
tsrm_ls=0x8290018)
at /home/lod/Downloads/php-5.1.0/main/main.c:1704
#7 0x081fd0bc in main (argc=3, argv=0xbffffb74)
at /home/lod/Downloads/php-5.1.0/sapi/cli/php_cli.c:1039
Also my configure line:
./configure \
'--disable-all' \
'--disable-cgi' \
'--enable-cli' \
'--enable-debug' \
'--with-apxs2=/usr/bin/apxs2' \
'--with-pear' \
'--prefix=/usr'\
'--with-config-file-path=/etc/php5' \
'--enable-libxml' \
'--enable-xml' \
'--enable-spl' \
'--with-layout=GNU' \
'--with-exec-dir=/usr/lib/php5/libexec' \
'--with-regex=php' \
'--with-libxml-dir=/usr' \
'--with-zlib' \
'--with-zlib-dir=/usr' \
'--with-libedit=shared,/usr' \
'--with-mime-magic=/usr/share/php5/magic.mime' \
'--with-pcre-regex=shared,/usr' \
'--with-pgsql=shared,/usr' \
'--with-tidy=shared,/usr'
The -n flag should have removed all the shared modules.
I'm afraid I won't be able to provide any more feedback for several
days.
------------------------------------------------------------------------
[2005-11-24 09:53:32] phpbug-david at tulloh dot id dot au
Description:
------------
Actually using php 5.1.0, final release.
PHP does not seem to handle exceptions correctly when called with php
-a.
I have two test cases that demonstrate the problem with slightly
different output.
The tests were run with:
php -n -f test1.php
cat test1.php | php -n -a
Reproduce code:
---------------
test1.php:
<?php
class TC
{
public function __construct() {}
public function __set($name, $value) {
throw new Exception();
}
}
$tr = new TC();
$tr->first =4;
$tr2= new TC();
var_dump($tr2);
$tr2->first=9;
?>
test2.php:
<?php
class TC
{
public function __construct() {}
public function afunc() {
throw new Exception();
}
}
$tr = new TC();
$tr->afunc();
$tr2 = new TC();
var_dump($tr2);
$tr2->afunc();
?>
Expected result:
----------------
The php -n -f command produces the expected results:
Fatal error: Uncaught exception 'Exception' in test1.php:5
Stack trace:
#0 test1.php(10): TC::__set('first', 4)
#1 {main}
thrown in test1.php on line 6
Fatal error: Uncaught exception 'Exception' in test2.php:6
Stack trace:
#0 test2.php(11): TC->afunc()
#1 {main}
thrown in test2.php on line 6
Actual result:
--------------
cat test1.php | php -n -a produces:
Interactive mode enabled
NULL
Fatal error: Invalid opcode 137/1/8. in - on line 14
and test2:
Interactive mode enabled
NULL
Fatal error: Call to a member function afunc() on a non-object in
/home/lod/ecouch/full/objects/- on line 14
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35360&edit=1