Soluzione all'errore "Core Dumped" sui server Metin2
Uno degli errori più temuti dagli amministratori dei server PVP Metin2 e che causa la chiusura improvvisa dei canali (CH) "Nucleo scaricato" (Core Crash) arriva. Questo errore si verifica quando il server si spegne automaticamente a seguito del rilevamento di un codice difettoso che non è in grado di elaborare in memoria (RAM), di una query di database non valida o di un file danneggiato. Di seguito puoi trovare come risolvere questo problema passo dopo passo.
Passaggio 1: rilevamento del file che si è bloccato
Quando ricevi l'errore Core dumped, il server viene inserito nella cartella bloccata.game.coreOdb.coreLascia un file di grandi dimensioni denominato . Per prima cosa dobbiamo trovare l'origine del problema:
- Connettiti al tuo server con Filezilla e vai alla directory in cui si trovano i canali (Es:
/usr/game/cores/channel1). - nella cartella gioco.core Se vedi il file, l'errore è causato da un sistema di gioco (codici sorgente C++ o utilizzo di una mappa/oggetto errato).
- Se
/usr/game/cores/dbdentro db.core Se lo vedi, il problema è completamente causato da una tabella danneggiata o da una voce proto errata nel database Navicat.
Passaggio 2: acquisizione dell'output Syserr errato
L'errore Core Dumped lascia un registro critico nel file syserr.txt nel momento esatto in cui si verifica. Per risolvere l'errore:
- Nella cartella che fornisce il core dump (Es: channel1) syserr Apri il file.
- Andando alle righe finali del file
CRASH,Segmentation FaultOAssertion failedCerca le parole. - Il nome della funzione o il codice articolo scritto qui ti mostrerà direttamente quale sistema ha bloccato il server. Controlla disabilitando l'ultimo sistema o missione che hai aggiunto.
Passaggio 3: analisi del file principale con GDB (metodo tecnico)
Se non è scritto nulla nel file syserr, puoi utilizzare GDB (GNU Debugger) su FreeBSD per trovare la riga di codice C++ che causa l'arresto anomalo:
- Inserisci la directory in cui si è verificato l'arresto anomalo tramite Putty:
cd /usr/game/cores/channel1 - Avvia il debugger eseguendo il seguente comando nel terminale:
gdb game game.core - Quando la riga di comando viene aperta, appare sullo schermo
btOwhereDigitalo e premi Invio. - Nella lista che apparirà sullo schermo, il file del codice sorgente e il numero di riga che ha causato l'errore (es:
char_item.cpp:1452) verranno elencati. Dovresti ricostruire correggendo questa riga nella sezione Sorgente.
Passaggio 4: rivedere gli errori comuni
Se non hai apportato modifiche al codice di recente, verifica questi due casi:
- Corruzione della tabella: Le tabelle nel database del lettore Navicat potrebbero essere danneggiate. Selezionando tutte le tabelle e facendo clic con il tasto destro Mantieni -> Ripara tabelle -> Esteso fallo.
- Overflow dello stack: Un bug creato dai giocatori (ad esempio cheat di colpi illimitati, pet bug) può gonfiare la memoria del server e causare il core dumping. Utilizzare infrastrutture di protezione aggiornate (Guard).
Questo articolo è stato preparato appositamente per PvPServer.