summaryrefslogtreecommitdiff
path: root/sapi/phpdbg/phpdbg_utils.c
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2015-04-21 12:31:43 +0200
committerBob Weinand <bobwei9@hotmail.com>2015-04-21 12:31:57 +0200
commitf83ee6a05d9b0213ba43831a5c55ad7992a825c0 (patch)
tree442021febad15273bce93a3264929c89ec88a19a /sapi/phpdbg/phpdbg_utils.c
parentca76a86fe62ef87dc25905c5ca90244d9b84a81f (diff)
downloadphp-git-f83ee6a05d9b0213ba43831a5c55ad7992a825c0.tar.gz
Add next command / Fix recursion/exceptions with u/F/L
Diffstat (limited to 'sapi/phpdbg/phpdbg_utils.c')
-rw-r--r--sapi/phpdbg/phpdbg_utils.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sapi/phpdbg/phpdbg_utils.c b/sapi/phpdbg/phpdbg_utils.c
index a4725bd744..e1f6c59502 100644
--- a/sapi/phpdbg/phpdbg_utils.c
+++ b/sapi/phpdbg/phpdbg_utils.c
@@ -712,3 +712,25 @@ head_done:
}
} phpdbg_end_try_access();
}
+
+PHPDBG_API zend_bool phpdbg_check_caught_ex(zend_execute_data *ex) {
+ const zend_op *op;
+ uint32_t op_num, i;
+ zend_op_array *op_array = &ex->func->op_array;
+
+ if (ex->opline >= EG(exception_op) && ex->opline < EG(exception_op) + 3) {
+ op = EG(opline_before_exception);
+ } else {
+ op = ex->opline;
+ }
+
+ op_num = op - op_array->opcodes;
+
+ for (i = 0; i < op_array->last_try_catch && op_array->try_catch_array[i].try_op > op_num; i++) {
+ if (op_num < op_array->try_catch_array[i].catch_op || op_num < op_array->try_catch_array[i].finally_op) {
+ return 1;
+ }
+ }
+
+ return 0;
+}