summaryrefslogtreecommitdiff
path: root/Zend/zend_builtin_functions.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2002-06-11 18:37:41 +0000
committerAndi Gutmans <andi@php.net>2002-06-11 18:37:41 +0000
commitb4a76acfa45808e47034818786b43c337d98aad4 (patch)
treef0811cb80f59be16cffa3f77e5a1697050474ec0 /Zend/zend_builtin_functions.c
parentb2015c5610f094c83283134f2df6632e2e68681d (diff)
downloadphp-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.c21
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;