Ultima modifica:
In questo topic vorrei fornire, almeno a mio parere, delle linee guida che possano servire a comprendere velocemente il problema che si presenta nel vostro server.
Vi consiglio, per capire meglio eventuali errori in source, di utilizzare le modalità di Debug nel Client (cambiando il tipo di soluzione in alto da Release/Distribute in Debug) e nel Server (Aggiungere -g3 in CFLAGS).
Se utilizzate un game strippato, il debug NON FUNZIONERÀ CORRETTAMENTE, in quanto il comando strip cancella le informazioni di debug da un file. In genere, un file game non strippato pesa sui 40MB, un file db non strippato sui 15MB. (La dimensione può variare in base alle source, sui vanilla core il peso è vicino ai 54MB)
Ci tengo a precisare di controllare sempre se si stà rilasciando Password, Source intere, IP o informazioni potenzialmente sensibili nel proprio post.
Spero che le idee si siano un po' chiarite, buona fortuna con i vostri errori.
- Definire in modo semplice e conciso il proprio problema.
Esempio di descrizione efficace: "Ho provato ad implementare le stole, quando le indosso, le stole vanno correttamente nello slot, ma non si vedono."
- Specificare la versione del programma che si stà usando o del proprio compilatore.
Esempio in caso di source: "Sto utilizzando FreeBSD 12.0 con GCC 7.0 nel Server, e Visual Studio 2017 sul Client"
In caso di un programma come 3DS Max: "Sto utilizzando 3DS Max 2013 con l'exporter GR2 versione 2.9"
Per controllare la versione del vostro compilatore (lato Server) aggiungete --version al comando di base.
Ad esempio se volessi controllare la versione di GCC digiterei:
Codice:gcc --version
- Inviare SEMPRE qualunque messaggio di errore che potreste ricevere dal programma che state usando. (Ad esempio 3DS Max o il WorldEditor)
- Scrivere, se fosse possibile, i file server e revisione che si stanno utilizzando in caso fossero pubblici o acquistati da venditori conosciuti.
- I file log (syserr.txt, syslog.txt, syserr e syslog) SONO FONDAMENTALI per risolvere un problema, in quanto il 60% dei casi tutti gli errori sono scritti li. In caso non ci sia nessun log inerente, semplicemente specificatelo nel post.
Esempio: "Ho controllato i vari syserr, ma non ho trovato nulla di interente al problema".
- Se il vostro server vi crasha (quindi genera un .core), NON RILASCIATE il .core, in quanto è inutile senza il game. Dovete rilasciare uno StackTrace. (è l'unica risorsa in italiano che ho trovato, il funzionamento è lo stesso anche per il C++ o il Python)
Non è necessario rilasciare tutto lo StackTrace, le prime 4 o 5 righe vanno bene.
Lato Server: Generalmente si può ottenere uno StackTrace utilizzando il debugger GDB.
Aprire il debugger con la riga di comando (controllate di essere nella cartella dove si trova il file .core"
Codice:gdb "file game" "file .core"
Una volta nella schermata digitate principale digitate il comando
Codice:bt full
Una volta che siete ritornati alla schermata precedente, digitateCodice:Quit
Python: lo StackTrace si trova all'interno del file Syserr.txt.
Source Client: Lo StackTrace è disponibile SOLO quando di debugga utilizzando Visual Studio, o al momento di un crash in runtime (si potrebbe utilizzare anche il debugger in linea di comando).
Durante un crash, cliccate il tasto Riprova, si aprirà una schermata che chiederà la versione di Visual Studio (in caso avete più debugger e/o avete più Visual Studio) cliccate su Si.
Una volta che Visual Studio si è avviato, comparirà un piccolo box chiamato Eccezzione non gestita, all'interno di quel box troverete l'effettivo errore da postare.
A questo punto lo StackTrace lo troverete in basso a destra nella finestra Stack di Chiamate.
- Lo StackTrace segnala precisamente il file e la riga affetta dal problema, se vi trovaste ad inviare codice, inviate l'intera funzione (quella che inizia con le {, in caso del Python quella che inizia con def), o una parte di codice utile per scovare l'errore.
- Gli errori relativi a MySQL, RICHIEDONO postare il file log di MySQL, reperibile in /var/db/mysql, il file .err. Su Windows questo log si può trovare qui (C:/Program Files/MariaDB XX.X/data o in C:/ProgramData/Mysql Server X.X/data).
- Per gli errori relativi alle query, è necessario inviare le righe affette dall'errore (Disabilitare l'opzione di processare più righe contemporaneamente e disattivare l'opzione di continuare in caso accade un errore per avere la riga esatta che manifesta l'errore).
- In caso riesci a risolvere la tua domanda, PRECISA SEMPRE come sei riuscito a risolvere il tuo problema, in modo che altri utenti potranno visualizzare la tua discussione senza crearne un altra.
Vi consiglio, per capire meglio eventuali errori in source, di utilizzare le modalità di Debug nel Client (cambiando il tipo di soluzione in alto da Release/Distribute in Debug) e nel Server (Aggiungere -g3 in CFLAGS).
Se utilizzate un game strippato, il debug NON FUNZIONERÀ CORRETTAMENTE, in quanto il comando strip cancella le informazioni di debug da un file. In genere, un file game non strippato pesa sui 40MB, un file db non strippato sui 15MB. (La dimensione può variare in base alle source, sui vanilla core il peso è vicino ai 54MB)
Ci tengo a precisare di controllare sempre se si stà rilasciando Password, Source intere, IP o informazioni potenzialmente sensibili nel proprio post.
Spero che le idee si siano un po' chiarite, buona fortuna con i vostri errori.