summaryrefslogtreecommitdiff
path: root/sapi/phpdbg/phpdbg.c
diff options
context:
space:
mode:
authorReeze Xia <reeze@php.net>2015-02-13 17:45:43 +0800
committerReeze Xia <reeze@php.net>2015-02-13 17:47:47 +0800
commit46d957294599abee450b893b6bc4275b27954e30 (patch)
tree0773ed3118e65c4c620fb51d97f547c70ce4b3eb /sapi/phpdbg/phpdbg.c
parent136594822fb1cd8e7067685d10b34a1338410027 (diff)
downloadphp-git-46d957294599abee450b893b6bc4275b27954e30.tar.gz
Fixed phpdbg zend_bailout error when compiling syntax error code
@krakjoe if there is something wrong, tell me plz
Diffstat (limited to 'sapi/phpdbg/phpdbg.c')
-rw-r--r--sapi/phpdbg/phpdbg.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index 3337f05cdc..74bf84adff 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -65,6 +65,7 @@ PHP_INI_BEGIN()
PHP_INI_END()
static zend_bool phpdbg_booted = 0;
+static zend_bool phpdbg_fully_started = 0;
#if PHP_VERSION_ID >= 50500
void (*zend_execute_old)(zend_execute_data *execute_data);
@@ -523,6 +524,10 @@ static void php_sapi_phpdbg_log_message(char *message) /* {{{ */
phpdbg_list_file(file, 3, zend_get_executed_lineno() - 1, zend_get_executed_lineno());
efree(file);
+ if (!phpdbg_fully_started) {
+ return;
+ }
+
do {
switch (phpdbg_interactive(1)) {
case PHPDBG_LEAVE:
@@ -1476,7 +1481,11 @@ phpdbg_main:
if (settings) {
PHPDBG_G(flags) |= PHPDBG_DISCARD_OUTPUT;
}
- phpdbg_compile();
+
+ zend_try {
+ phpdbg_compile();
+ } zend_end_try();
+
PHPDBG_G(flags) &= ~PHPDBG_DISCARD_OUTPUT;
}
@@ -1485,6 +1494,8 @@ phpdbg_main:
PHPDBG_G(flags) |= PHPDBG_IS_STEPPING;
}
+ phpdbg_fully_started = 1;
+
/* #ifndef for making compiler shutting up */
#ifndef _WIN32
phpdbg_interact: