- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/internals/diag.php
- Класс: BitrixDiskInternalsDiag
- Вызов: Diag::collectDebugInfo
public function collectDebugInfo($uniqueId, $label = null)
{
if($this->exclusiveUserId !== null && $this->getUser()->getId() != $this->exclusiveUserId)
{
return;
}
if($this->enableTimeTracker)
{
Debug::startTimeLabel($uniqueId);
}
if($this->enableErrorHandler)
{
$this->prevErrorReporting = error_reporting();
error_reporting($this->levelReporting);
set_error_handler(function ($code, $message, $file, $line, $context = null)
{
if($this->filePathPatternToCatchError && preg_match($this->filePathPatternToCatchError, $file))
{
if(preg_match('%Non-static method C[A-Z][w]+::%', $message))
{
//it's old style in old kernel. There aren't static in method.
return;
}
$backtrace = debug_backtrace();
$this->log(array(
$code,
$message,
$file,
$line
));
}
}, $this->levelReporting);
}
if($this->sqlBehavior & (self::SQL_COUNT | self::SQL_DETECT_LIKE | self::SQL_PRINT_ALL))
{
if(empty($this->stackSql))
{
$this->connection->startTracker(true);
array_push($this->stackSql, array($uniqueId, 0, array()));
}
else
{
list($prevLabel, $prevLabelCount, $prevSqlTrackerQueries) = array_pop($this->stackSql);
list($countQueries, $sqlTrackerQueries) = $this->getDebugInfoSql();
array_push($this->stackSql, array($prevLabel, $countQueries + $prevLabelCount, array_merge($prevSqlTrackerQueries, $sqlTrackerQueries)));
$this->connection->startTracker(true);
array_push($this->stackSql, array($uniqueId, 0, array()));
}
}
if($this->memoryBehavior & self::MEMORY_PRINT_DIFF)
{
array_push($this->stackMemory, array($uniqueId, memory_get_usage(true)));
}
}