dbg_enabled) return; $id =& $this->dbg_id; $dbg =& $this->dbg[$id]; if ($mode == 'start') { $this->sql_starttime = utime(); $dbg['sql'] = isset($cur_query) ? short_query($cur_query) : short_query($this->cur_query); $dbg['src'] = $this->debug_find_source(); $dbg['file'] = $this->debug_find_source('file'); $dbg['line'] = $this->debug_find_source('line'); $dbg['time'] = ''; } else if ($mode == 'stop') { $this->cur_query_time = utime() - $this->sql_starttime; $this->sql_timetotal += $this->cur_query_time; $dbg['time'] = $this->cur_query_time; $id++; } else { trigger_error("[Cache] Invalid debug mode: $mode", E_USER_ERROR); } } /** * Find caller source */ function debug_find_source ($mode = '') { if (!SQL_PREPEND_SRC_COMM) return 'src disabled'; foreach (debug_backtrace() as $trace) { if (empty($trace['file']) || empty($trace['line'])) continue; if ($trace['file'] !== __FILE__) { switch ($mode) { case 'file': return $trace['file']; case 'line': return $trace['line']; default: return hide_bb_path($trace['file']) .'('. $trace['line'] .')'; } } } return 'src not found'; } }