diff options
Diffstat (limited to 'Zend/zend_dtrace.c')
-rw-r--r-- | Zend/zend_dtrace.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Zend/zend_dtrace.c b/Zend/zend_dtrace.c index 2c1deadec0..285f6c044e 100644 --- a/Zend/zend_dtrace.c +++ b/Zend/zend_dtrace.c @@ -26,8 +26,13 @@ /* PHP DTrace probes {{{ */ static inline const char *dtrace_get_executed_filename(TSRMLS_D) { - if (EG(current_execute_data) && EG(current_execute_data)->op_array) { - return EG(current_execute_data)->op_array->filename; + zend_execute_data *ex = EG(current_execute_data); + + while (ex && (!ex->func || !ZEND_USER_CODE(ex->func->type))) { + ex = ex->prev_execute_data; + } + if (ex) { + return ex->func->op_array.filename->val; } else { return zend_get_executed_filename(TSRMLS_C); } |