public function showCallLocation()
    {
        $namespace = Debug::libraryNamespace();
        $base = __DIR__;
        $stack = debug_backtrace(0);
        $FNS = self::GLOBAL_LOG_FNS;
        // Discard frames of all functions that belong to this library.
        while (!empty($stack) && (isset($stack[0]['file']) && stripos($stack[0]['file'], $base) === 0 || isset($stack[0]['class']) && stripos($stack[0]['class'], $namespace) === 0 || isset($stack[0]['function']) && !isset($FNS[$stack[0]['function']]))) {
            array_shift($stack);
        }
        $trace = $stack ? $stack[0] : [];
        $path = isset($trace['file']) ? $trace['file'] : '';
        $line = isset($trace['line']) ? $trace['line'] : '';
        $shortPath = ErrorConsole::shortFileName($path);
        $shortPath = str_segmentsLast($shortPath, '/');
        $location = empty($line) ? $shortPath : ErrorConsole::errorLink($path, $line, 1, "{$shortPath}:{$line}", 'hint--rounded hint--left', 'data-hint');
        if ($path != '') {
            $path = <<<HTML
<div class="__debug-location">At {$location}</div>
HTML;
        }
        $this->write($path);
        return $this;
    }
 private static function filterStackTrace(array $trace)
 {
     $n = explode('\\', Debug::libraryNamespace());
     array_pop($n);
     $namespace = implode('\\', $n);
     return array_values(array_filter($trace, function ($frame) use($namespace) {
         return !isset($frame['class']) || substr($frame['class'], 0, strlen($namespace)) != $namespace;
     }));
 }