pocketmine\Server::crashDump PHP Method

crashDump() public method

public crashDump ( )
    public function crashDump()
    {
        if ($this->isRunning === false) {
            return;
        }
        if ($this->sendUsageTicker > 0) {
            $this->sendUsage(SendUsageTask::TYPE_CLOSE);
        }
        $this->hasStopped = false;
        ini_set("error_reporting", 0);
        ini_set("memory_limit", -1);
        //Fix error dump not dumped on memory problems
        $this->logger->emergency($this->getLanguage()->translateString("pocketmine.crash.create"));
        try {
            $dump = new CrashDump($this);
        } catch (\Throwable $e) {
            $this->logger->critical($this->getLanguage()->translateString("pocketmine.crash.error", $e->getMessage()));
            return;
        }
        $this->logger->emergency($this->getLanguage()->translateString("pocketmine.crash.submit", [$dump->getPath()]));
        if ($this->getProperty("auto-report.enabled", true) !== false) {
            $report = true;
            $plugin = $dump->getData()["plugin"];
            if (is_string($plugin)) {
                $p = $this->pluginManager->getPlugin($plugin);
                if ($p instanceof Plugin and !$p->getPluginLoader() instanceof PharPluginLoader) {
                    $report = false;
                }
            } elseif (\Phar::running(true) == "") {
                $report = false;
            }
            if ($dump->getData()["error"]["type"] === "E_PARSE" or $dump->getData()["error"]["type"] === "E_COMPILE_ERROR") {
                $report = false;
            }
            if ($report) {
                $reply = Utils::postURL("http://" . $this->getProperty("auto-report.host", "crash.pocketmine.net") . "/submit/api", ["report" => "yes", "name" => $this->getName() . " " . $this->getPocketMineVersion(), "email" => "[email protected]", "reportPaste" => base64_encode($dump->getEncodedData())]);
                if (($data = json_decode($reply)) !== false and isset($data->crashId)) {
                    $reportId = $data->crashId;
                    $reportUrl = $data->crashUrl;
                    $this->logger->emergency($this->getLanguage()->translateString("pocketmine.crash.archive", [$reportUrl, $reportId]));
                }
            }
        }
        //$this->checkMemory();
        //$dump .= "Memory Usage Tracking: \r\n" . chunk_split(base64_encode(gzdeflate(implode(";", $this->memoryStats), 9))) . "\r\n";
        $this->forceShutdown();
        $this->isRunning = false;
        @kill(getmypid());
        exit(1);
    }
Server