Index: trunk/kernel/include/adodb/adodb.inc.php =================================================================== diff -u -N -r856 -r857 --- trunk/kernel/include/adodb/adodb.inc.php (.../adodb.inc.php) (revision 856) +++ trunk/kernel/include/adodb/adodb.inc.php (.../adodb.inc.php) (revision 857) @@ -755,7 +755,7 @@ $errorLevel = defined('SQL_ERROR_DIE')&&SQL_ERROR_DIE ? E_USER_ERROR : E_USER_WARNING; $debugger->dumpVars($_REQUEST); $debugger->appendTrace(); - trigger_error(''.$m.' ('.$e.')
SQL: '.$sql, $errorLevel); + trigger_error(''.$m.' ('.$e.')
SQL: '.$debugger->highlightString($sql), $errorLevel); ADOConnection::outp($e .': '. $m ); flush(); Index: trunk/kernel/include/debugger.php =================================================================== diff -u -N -r856 -r857 --- trunk/kernel/include/debugger.php (.../debugger.php) (revision 856) +++ trunk/kernel/include/debugger.php (.../debugger.php) (revision 857) @@ -1,4 +1,5 @@ $argValue) + foreach ($traceArgs as $argID => $argValue) { - if( is_array($argValue) ) + if( is_array($argValue) || is_object($argValue) ) { - $this->processTraceArguments($argValue); - $traceRec['args'][$argID] = $argValue; + if(is_object($argValue) && !in_array(get_class($argValue),$this->RecursionStack) ) + { + // object & not in stack - ok + array_push($this->RecursionStack, get_class($argValue)); + settype($argValue,'array'); + $this->processTraceArguments($argValue); + array_pop($this->RecursionStack); + } + elseif(is_object($argValue) && in_array(get_class($argValue),$this->RecursionStack) ) + { + // object & in stack - recursion + $traceArgs[$argID] = '**** RECURSION ***'; + } + else + { + // normal array here + $this->processTraceArguments($argValue); + } } else { - if( strlen($argValue) > 200 ) $traceRec['args'][$argID] = htmlspecialchars(substr($argValue,0,50).' ...'); + $traceArgs[$argID] = $this->cutStringForHTML($traceArgs[$argID]); } } } + function cutStringForHTML($string) + { + if( strlen($string) > 200 ) $string = substr($string,0,50).' ...'; + return $string; + + } + function highlightString($string) { - $string = highlight_string('', true); - return preg_replace('/<\?(.*)php (.*)\?>/s','$2',$string); + if( defined('DBG_USE_HIGHLIGHT')&&DBG_USE_HIGHLIGHT ) + { + $string = highlight_string('', true); + return preg_replace('/<\?(.*)php (.*)\?>/s','$2',$string); + } + else + { + return $string; + } } function getFileLink($file, $lineno = 1, $title = '')