From c5fc10f049eef84e4ff4b1d04f6361f48dad373e Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Wed, 7 Jan 2009 11:50:07 +0000 Subject: [PATCH] Added backtrace debugging function. --- includes/ui/ui_view.inc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/includes/ui/ui_view.inc b/includes/ui/ui_view.inc index d9791041..cee877d5 100644 --- a/includes/ui/ui_view.inc +++ b/includes/ui/ui_view.inc @@ -1182,4 +1182,43 @@ if (!function_exists('_vd')) } } +function display_backtrace($cond=true, $msg='') { + + if ($cond) { + if ($msg) + $str = "
$msg
\n"; + else + $str = ''; + $str .= ''; + $trace = debug_backtrace(); + foreach($trace as $trn => $tr) { + if (!$trn) continue; + $str .= ''; + + $str .= ''; + } + + $str .= '
'; + $str .= $tr['file'].':'.$tr['line'].': '; + $str .= ''; + if (isset($tr['type'])) { + if($tr['type'] == '::') { + $str .= $tr['class'].'::'; + } else if($tr['type'] == '->') { + $str .= '('.$tr['class'].' Object)'.'->'; + } + } + foreach($tr['args'] as $n=>$a) { + if (is_object($tr['args'][$n])) + $tr['args'][$n] = "(".get_class($tr['args'][$n])." Object)"; + if (is_array($tr['args'][$n])) + $tr['args'][$n] = "(Array[".count($tr['args'][$n])."])"; + else + $tr['args'][$n] = "'".$tr['args'][$n]."'"; + } + $str .= $tr['function'].'('. implode(',',$tr['args']).')
'; + display_error($str); + } +} + ?> \ No newline at end of file -- 2.30.2