diff options
| author | Andi Gutmans <andi@php.net> | 2002-06-11 18:37:41 +0000 |
|---|---|---|
| committer | Andi Gutmans <andi@php.net> | 2002-06-11 18:37:41 +0000 |
| commit | b4a76acfa45808e47034818786b43c337d98aad4 (patch) | |
| tree | f0811cb80f59be16cffa3f77e5a1697050474ec0 /Zend/zend_builtin_functions.c | |
| parent | b2015c5610f094c83283134f2df6632e2e68681d (diff) | |
| download | php-git-b4a76acfa45808e47034818786b43c337d98aad4.tar.gz | |
- Don't show debug_backtrace() in the trace itself.
- This patch is a bit ugly because the whole code itself is pretty complex
- and hard to re-order.
Diffstat (limited to 'Zend/zend_builtin_functions.c')
| -rw-r--r-- | Zend/zend_builtin_functions.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 6328a0a97f..0fd566ec60 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1198,6 +1198,7 @@ ZEND_FUNCTION(debug_backtrace) char *class_name; zend_uint class_name_length; zval *stack_frame; + zend_bool first_time = 1; ptr = EG(current_execute_data); lineno = ptr->opline->lineno; @@ -1230,15 +1231,19 @@ ZEND_FUNCTION(debug_backtrace) filename = ptr->function_state.function->op_array.filename; - add_assoc_string_ex(stack_frame, "function", sizeof("function"), function_name, 1); - if (class_name) { - add_assoc_string_ex(stack_frame, "class", sizeof("class"), class_name, 1); + if (!first_time) { /* Skip the first context which is debug_backtrace() itself */ + add_assoc_string_ex(stack_frame, "function", sizeof("function"), function_name, 1); + if (class_name) { + add_assoc_string_ex(stack_frame, "class", sizeof("class"), class_name, 1); + } + add_assoc_string_ex(stack_frame, "file", sizeof("file"), filename, 1); + add_assoc_long_ex(stack_frame, "line", sizeof("line"), lineno); + /* add_assoc_stringl_ex(stack_frame, "class", sizeof("class")-1, class_name, class_name_length, 1); */ + + add_next_index_zval(return_value, stack_frame); + } else { + first_time = 0; } - add_assoc_string_ex(stack_frame, "file", sizeof("file"), filename, 1); - add_assoc_long_ex(stack_frame, "line", sizeof("line"), lineno); - /* add_assoc_stringl_ex(stack_frame, "class", sizeof("class")-1, class_name, class_name_length, 1); */ - - add_next_index_zval(return_value, stack_frame); if (ptr->opline) { lineno = ptr->opline->lineno; |
