Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r951 -r961 --- trunk/core/kernel/application.php (.../application.php) (revision 951) +++ trunk/core/kernel/application.php (.../application.php) (revision 961) @@ -815,7 +815,11 @@ $errorLevel=defined('DBG_SQL_FAILURE')&&DBG_SQL_FAILURE?E_USER_ERROR:E_USER_WARNING; $debugger->dumpVars($_REQUEST); $debugger->appendTrace(); - trigger_error(''.$msg.' ('.$code.')
SQL: '.$debugger->highlightString($sql),$errorLevel); + + $error_msg = ''.$msg.' ('.$code.')
SQL: '.$debugger->formatSQL($sql); + $long_id=$debugger->mapLongError($error_msg); + trigger_error($msg.' ('.$code.') ['.$sql.'] #'.$long_id, $errorLevel); + return true; } else Index: trunk/core/kernel/utility/debugger.php =================================================================== diff -u -N -r947 -r961 --- trunk/core/kernel/utility/debugger.php (.../debugger.php) (revision 947) +++ trunk/core/kernel/utility/debugger.php (.../debugger.php) (revision 961) @@ -6,6 +6,7 @@ if(!defined('DBG_USE_SHUTDOWN_FUNC')) define('DBG_USE_SHUTDOWN_FUNC',1); if(!defined('DBG_HANDLE_ERRORS')) define('DBG_HANDLE_ERRORS', isset($_REQUEST['debug_host']) ? 0 : 1); + if(!defined('DBG_RAISE_ON_WARNINGS')) define('DBG_RAISE_ON_WARNINGS',0); if(!defined('DBG_SHOW_MEMORY_USAGE')) define('DBG_SHOW_MEMORY_USAGE',1); @@ -39,6 +40,8 @@ 'output_buffer' => 4, 'highlight_output' => 8); + var $longErrors=Array(); + /** * Amount of memory used by debugger itself * @@ -58,6 +61,13 @@ } + function mapLongError($msg) + { + $key=$this->generateID(); + $this->longErrors[$key]=$msg; + return $key; + } + function setOption($name,$value) { if( !isset($this->OptionsMap[$name]) ) die('undefined debugger option: ['.$name.']
'); @@ -208,7 +218,7 @@ function formatSQL($sql) { $sql = preg_replace('/(\n|\t| )+/is',' ',$sql); - $sql = preg_replace('/(CREATE TABLE|DROP TABLE|SELECT|UPDATE|SET|REPLACE|INSERT|DELETE|VALUES|FROM|LEFT JOIN|WHERE|HAVING|GROUP BY|ORDER BY) /is', "\n\t$1 ",$sql); + $sql = preg_replace('/(CREATE TABLE|DROP TABLE|SELECT|UPDATE|SET|REPLACE|INSERT|DELETE|VALUES|FROM|LEFT JOIN|INNER JOIN|LIMIT|WHERE|HAVING|GROUP BY|ORDER BY) /is', "\n\t$1 ",$sql); return $this->highlightString($sql); } @@ -685,6 +695,15 @@ return false; } + $long_id_pos=strrpos($errstr,'#'); + if($long_id_pos!==false) + { + // replace short message with long one (due triger_error limitations on message size) + $long_id=substr($errstr,$long_id_pos+1,strlen($errstr)); + $errstr=$this->longErrors[$long_id]; + unset($this->longErrors[$long_id]); + } + if( strpos($errfile,'eval()\'d code') !== false ) { $errstr = '[EVAL, line '.$errline.']: '.$errstr; Index: trunk/kernel/include/adodb/adodb.inc.php =================================================================== diff -u -N -r859 -r961 --- trunk/kernel/include/adodb/adodb.inc.php (.../adodb.inc.php) (revision 859) +++ trunk/kernel/include/adodb/adodb.inc.php (.../adodb.inc.php) (revision 961) @@ -755,8 +755,11 @@ $errorLevel = defined('SQL_ERROR_DIE')&&SQL_ERROR_DIE ? E_USER_ERROR : E_USER_WARNING; $debugger->dumpVars($_REQUEST); $debugger->appendTrace(); - trigger_error(''.$m.' ('.$e.')
SQL: '.$debugger->formatSQL($sql), $errorLevel); + $error_msg = ''.$m.' ('.$e.')
SQL: '.$debugger->formatSQL($sql); + $long_id=$debugger->mapLongError($error_msg); + trigger_error($m.' ('.$e.') ['.$sql.'] #'.$long_id, $errorLevel); + ADOConnection::outp($e .': '. $m ); flush(); } Index: trunk/kernel/include/debugger.php =================================================================== diff -u -N -r948 -r961 --- trunk/kernel/include/debugger.php (.../debugger.php) (revision 948) +++ trunk/kernel/include/debugger.php (.../debugger.php) (revision 961) @@ -6,6 +6,7 @@ if(!defined('DBG_USE_SHUTDOWN_FUNC')) define('DBG_USE_SHUTDOWN_FUNC',1); if(!defined('DBG_HANDLE_ERRORS')) define('DBG_HANDLE_ERRORS', isset($_REQUEST['debug_host']) ? 0 : 1); + if(!defined('DBG_RAISE_ON_WARNINGS')) define('DBG_RAISE_ON_WARNINGS',0); if(!defined('DBG_SHOW_MEMORY_USAGE')) define('DBG_SHOW_MEMORY_USAGE',1); @@ -39,6 +40,8 @@ 'output_buffer' => 4, 'highlight_output' => 8); + var $longErrors=Array(); + /** * Amount of memory used by debugger itself * @@ -58,6 +61,13 @@ } + function mapLongError($msg) + { + $key=$this->generateID(); + $this->longErrors[$key]=$msg; + return $key; + } + function setOption($name,$value) { if( !isset($this->OptionsMap[$name]) ) die('undefined debugger option: ['.$name.']
'); @@ -208,7 +218,7 @@ function formatSQL($sql) { $sql = preg_replace('/(\n|\t| )+/is',' ',$sql); - $sql = preg_replace('/(CREATE TABLE|DROP TABLE|SELECT|UPDATE|SET|REPLACE|INSERT|DELETE|VALUES|FROM|LEFT JOIN|WHERE|HAVING|GROUP BY|ORDER BY) /is', "\n\t$1 ",$sql); + $sql = preg_replace('/(CREATE TABLE|DROP TABLE|SELECT|UPDATE|SET|REPLACE|INSERT|DELETE|VALUES|FROM|LEFT JOIN|INNER JOIN|LIMIT|WHERE|HAVING|GROUP BY|ORDER BY) /is', "\n\t$1 ",$sql); return $this->highlightString($sql); } @@ -685,6 +695,15 @@ return false; } + $long_id_pos=strrpos($errstr,'#'); + if($long_id_pos!==false) + { + // replace short message with long one (due triger_error limitations on message size) + $long_id=substr($errstr,$long_id_pos+1,strlen($errstr)); + $errstr=$this->longErrors[$long_id]; + unset($this->longErrors[$long_id]); + } + if( strpos($errfile,'eval()\'d code') !== false ) { $errstr = '[EVAL, line '.$errline.']: '.$errstr;