Déboguer le shard

Sous linux (en config standard), dès qu'un processus plante il génère un fichier qui se nomme “core” dans le dossier où s'exécute le processus, ce core est une image mémoire du processus plus des infos de debogage comme le stack (la suite des dernières instructions executées), ce qui permet par exemple de voir l'ensemble de ce qui s'est passé avant le crash.

Pour utiliser le core, faut se mettre dans le dossier /code/ryzom/server/ où normalement les processus du serveur se déroulent.

Il devrait y avoir un fichier “core”, on tape alors :

~/khaganat/code/ryzom/server $ gdb core core

Ça va charger le core.

Ensuite il faut charger les symboles (les infos de debugage, sinon on ne voit que des adresses et pas le code source) :

(gdb) symbol-file ../../build/bin/ryzom_ai_service

note deed, j'ai utilisé :

~/khaganat/code/ryzom/server $ gdb ../../build/bin/ryzom_ai_service core

Et ensuite on demande le backtrace

(gdb) bt

On obtient alors les informations sur ce qui s'est réellement déroulé.

Attention, il faut que le serveur soit compilé avec l'option: -DWITH_SYMBOLS=ON pour avoir les symboles de debug

Pour le client

Certaines infos de déboguages parlent plus depuis le client.

Installez gdb si ce n'est pas déjà fait, mettez vous dans le dossier de jeu Khanat, puis lancez avec gdb

gdb khanat_client
run