From: Nicolas Boisselier Date: Tue, 1 Mar 2016 22:10:18 +0000 (+0000) Subject: Add functions debug_backtrace_* X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=7397a9c5069eb064ee98efb815dfd8ceef1686e0;p=nb.git Add functions debug_backtrace_* --- diff --git a/lib/php/nb.php b/lib/php/nb.php index 40d74758..77ad2f9f 100644 --- a/lib/php/nb.php +++ b/lib/php/nb.php @@ -198,6 +198,90 @@ class nb { return "--- \n$yaml\n"; } + /* + * Function: debug_backtrace_msg + * @copyright 13.07.11 + * @author NB + * Return backtrace message + */ + static function debug_backtrace_msg($deep=NULL,$one_line=NULL) { + + $debug = debug_backtrace(); + $msg = ''; + array_shift($debug); + if (isset($_REQUEST['_debug_backtrace_msg'])) $deep = $_REQUEST['_debug_backtrace_msg']; + + if ($deep===NULL or $deep===TRUE) { + + $msg .= ' ['; + + foreach (array_reverse($debug) as $i=>$call_info) + $msg .= ( $one_line ? ($i>0 ? ", " : "") : "\n\t" ) . nb::debug_backtrace_info($call_info); + + $msg .= ($one_line ? "" : "\n")."]"; + + } elseif (isset($call_info[(int)$deep])) { + $msg .= ' '.nb::debug_backtrace_info($call_info[(int)$deep]); + + } + + return $msg; + } + + /* + * Function: debug_backtrace_info + * @copyright 13.07.11 + * @author NB + * Return backtrace message + */ + static function debug_backtrace_info($call_info) { + + $errorType = array ( + E_ERROR => 'ERROR', + E_WARNING => 'WARNING', + E_PARSE => 'PARSING ERROR', + E_NOTICE => 'NOTICE', + + E_CORE_ERROR => 'CORE ERROR', + E_CORE_WARNING => 'CORE WARNING', + E_COMPILE_ERROR => 'COMPILE ERROR', + E_COMPILE_WARNING => 'COMPILE WARNING', + + E_USER_ERROR => 'USER ERROR', + E_USER_WARNING => 'USER WARNING', + E_USER_NOTICE => 'USER NOTICE', + + E_STRICT => 'STRICT NOTICE', + + E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR', + E_DEPRECATED => 'E_DEPRECATED ERROR', + E_USER_DEPRECATED => 'E_USER_DEPRECATED ERROR', + ); + if (isset($call_info['type']) and isset($errorType[$call_info['type']])) $call_info['type'] = $errorType[$call_info['type']].'='.$call_info['type']; + #else ($call_info['type']) $call_info['type'] = $call_info['type']; + + // Default values + if (isset($call_info['file'])) $call_info['file'] = str_replace($_SERVER['DOCUMENT_ROOT'].'/','',$call_info['file']); + + // Get infos + $msg = array(); + foreach (array( + 'file', + 'line', + 'function', + # NB 21.07.11 'type', + 'type', + 'message', + 'code', + ) as $i) { + + die($i); + if (array_key_exists($i,$call_info)) $msg[] = "$i=".$call_info[$i]; + + } + + return join(' ',$msg); + } } #die(nb::ext2mime('csv'));