]> granicus.if.org Git - php/commitdiff
Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions)
authorBob Weinand <bobwei9@hotmail.com>
Fri, 2 Oct 2015 10:18:26 +0000 (12:18 +0200)
committerBob Weinand <bobwei9@hotmail.com>
Fri, 2 Oct 2015 10:37:40 +0000 (12:37 +0200)
NEWS
sapi/phpdbg/phpdbg_prompt.c
sapi/phpdbg/tests/exceptions_001.phpt
sapi/phpdbg/tests/exceptions_002.phpt

diff --git a/NEWS b/NEWS
index 1d8768b88b6a76dc07fc5b867b3b787cfe99192f..ec502898cd57b846d6939fab6088a70ffc98d93b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 15 Oct 2015, PHP 7.0.0 RC 5
 
-
+- Phpdbg
+  . Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions). (Bob)
 
 01 Oct 2015, PHP 7.0.0 RC 4
 
index f5341075d0eaa592944cd12eec5ddd8de2f023ac..c16836c8724f64806f8a380de32a20e1c0d1027f 100644 (file)
@@ -649,9 +649,10 @@ static inline void phpdbg_handle_exception(void) /* {{{ */
                msg = zval_get_string(zend_read_property(zend_get_exception_base(&zv), &zv, ZEND_STRL("string"), 1, &rv));
        }
 
-       phpdbg_writeln("exception", "name=\"%s\" file=\"%s\" line=\"" ZEND_LONG_FMT "\"", "Uncaught %s in %s on line " ZEND_LONG_FMT "\n%s", ZSTR_VAL(ex->ce->name), ZSTR_VAL(file), line, ZSTR_VAL(msg));
-       zend_string_release(msg);
+       phpdbg_error("exception", "name=\"%s\" file=\"%s\" line=\"" ZEND_LONG_FMT "\"", "Uncaught %s in %s on line " ZEND_LONG_FMT, ZSTR_VAL(ex->ce->name), ZSTR_VAL(file), line);
        zend_string_release(file);
+       phpdbg_writeln("exceptionmsg", "msg=\"%s\"", ZSTR_VAL(msg));
+       zend_string_release(msg);
 
        if (EG(prev_exception)) {
                OBJ_RELEASE(EG(prev_exception));
@@ -659,6 +660,8 @@ static inline void phpdbg_handle_exception(void) /* {{{ */
        }
        OBJ_RELEASE(ex);
        EG(opline_before_exception) = NULL;
+
+       EG(exit_status) = 255;
 } /* }}} */
 
 PHPDBG_COMMAND(run) /* {{{ */
index d5646ad40ddf4b36ba6d0087b3731f6039885c28..991ea1cc71fd1703573ea40a7b77f6e2edd2b05f 100644 (file)
@@ -16,7 +16,7 @@ prompt> handle first
 prompt> frame #0: {closure}() at %s:16
 frame #1: {main} at %s:20
 prompt> 3
-prompt> Uncaught Error in %s on line 16
+prompt> [Uncaught Error in %s on line 16]
 Error: Call to undefined function foo() in %s:16
 Stack trace:
 #0 %s(20): {closure}()
index 6c11c58db6d9ea4338505fda40456c00eec9781a..f304cc25db7bcc7e8cad23a826224760607c0a29 100644 (file)
@@ -20,7 +20,7 @@ Stack trace:
 #1 %s(20): {closure}()
 #2 {main}
   thrown in eval()'d code on line 1
-prompt> Uncaught Error in %s on line 16
+prompt> [Uncaught Error in %s on line 16]
 Error: Call to undefined function foo() in %s:16
 Stack trace:
 #0 %s(20): {closure}()