/**
* debuging('dtrace'); //查看调用栈
* debuging($var); //打印$var(var_dump)
* debuging($var, 'php'); //打印$var(var_export)
* debuging($var, $echo, 2); //以json格式输出$var
* debuging(__LINE__.__CLASS);//常用于大量if语句体定位, 或者寻找程序结束点
*/
function debuging($var = '', $echo = '', $die = false, $force = false) {
static $clear;
if (0 && $clear === null) {
ob_end_flush ();
$clear = true;
}
static $d;
if (0 && empty ( $d )) {
$d = 1;
debuging ( 'dtrace' );
}
$force && $_GET ['debug'] = 1;
if (isset ( $_GET ['debug'] )) {
if ('dtrace' === $var) {
dTrace ( $die );
} elseif ($die === 2) {
header ( 'Content-type: application/json' );
echo json_encode ( $var );
} else {
echo "
\n";
if ($echo) {
echo "$echo:";
}
if ($echo === 'php')
var_export ( $var );
else
var_dump ( $var );
echo "
\n";}
$die && die ();
}
}
function dTrace($die = false) {
try {
static $lastTime;
$lastTime or $lastTime = $_SERVER ['REQUEST_TIME'];
throw new Exception ();
} catch ( Exception $e ) {
$currTime = microtime ( true );
$totalTime = $currTime - $_SERVER ['REQUEST_TIME'];
$execTime = $currTime - $lastTime;
$lastTime = $currTime;
echo "\n
\n";
echo "execTime: $execTime s.
\n";
echo "totalTime: $totalTime s.
\n";
echo "Trace:
\n";
// echo $e->getTraceAsString() ;
// debug_print_backtrace();$die && die;
debuging ( $e->getTraceAsString (), 'php', $die );
}
}
for($i=0;$i<100000;$i++) {
$a +=$i;
}
dTrace();