diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-07-22 11:12:49 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-07-22 11:12:49 +0400 |
commit | ea17b018d834038f2e65b1716c0cbc02a27a7838 (patch) | |
tree | 620c48fc7793d4ed296fab86392e3420632c507e /Zend/zend_dtrace.c | |
parent | 6cc487df2c464224e28c3869599e0c110df03897 (diff) | |
download | php-git-ea17b018d834038f2e65b1716c0cbc02a27a7838.tar.gz |
Fixed dtrace support
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); } |