Debugmode
Le debugmode/mode de debug est un mode du client de jeu que l'on peut débloquer en activant certaines options à la compilation. Il permet d'avoir accès à de nombreuses informations de … debug (FPS, accès disque, accès réseaux …), les symboles de debug (utile si vous lancez votre client avec gdb, permet d'avoir énormément d'informations sur le crash) et des commandes particulières, très variée.
Activer le debugmode
(!!Je n'ai pas de quoi retester que ce sont bien ces options qu'il faut activer, je ferai ça en début de semaine prochaine!!)
Faites une compilation classique de ryzom (voir https://ryzomcore.atlassian.net/wiki/display/RC/Build+Source+on+Linux). Arrivé à l'étable de configuration de la compilation, celle où on bidouille avec cmake, je vous conseille d'installer cmake-gui et de le lancer. Vous aurez un écran qui ressemble à ça :
!!Si quelqu'un peut hoster l'image sur le wiki, je n'ai pas les droits!! Rentrez l'adresse absolue du code source dans la première ligne, l'adresse absolue pour les binaires sur la deuxième.(habituellement, un sous-dossier build/ dans le dossier du code).
Appuyez sur “configure”, choisissez “unix makefile” dans la liste déroulante, cochez “use default native compilers”. Attendez un peu, et vous allez avoir une liste des options. Pour activer le mode debug :
- Changez la aleur de CMAKE_BUILD_TYPE à Debug
- Vérifiez que CMAKE_CONFIGURATION_TYPES a pour valeur Debug;Release
- Décochez FINAL_VERSION
- Cochez WITH_SYMBOLS
La suite se passe comme une compilation normale.
Utiliser le debug mode
Les symboles de debug
Pour pouvoir utiliser les symboles de debug, en cas de crash, c'est très simple, lancez khanat ainsi : (j'ai enlevé les informations que gdb donne pour ne pas alourdir, mais cela devrait ressembler à cela)
$ gdb khanat_client (gdb) start (gdb) continue//Oui, parce qu'on a une erreur
En cas de crash, un simple
(gdb) thread apply all bt
suivi d'un
(gdb)quit
suffira. Le log d'erreur s'affichera dans le terminal, pensez à le sauvegarder !
Les commandes de debug
Dans l'interface touches, vous avez à la fin la section “touches de debug” avec la liste d'une bonne partie des touches de debug (certaines peuvent faire crasher votre client, à vos risques et périls :p). Commandes utiles :
Commande | Explication |
---|---|
Shift+F1 | Aide du mode debug (pas entière) |
Shift+F2 | Infos de debug (appuyer plusieurs fois pour changer) : état des I/O disque, FPS, textures chargées, interface utilisées … |
Shift+F8 | Mode vol. Permet de déplacer la caméra avec les touches de déplacement et page haut/page bas. Cette commande (parfaitement légale, hein) justifie l'acquisition d'un client debug à elle toute seule, elle vous fera réussir tous vos lucios, ramènera le conjoint infidèle, apportera bonheur et prospérité à votre foyer … Bref : tout ce qu'on peut espérer d'une commande |
Shift+F9 | “Souris libre”, aussi appelée “gros curseur”. C'est très chiant à utiliser, si jamais vous avez ça réutilisez la commande (ça m'arrive fréquemment de taper shift+F9 au lieu de shift+F8) |
Ctrl+D | Ouvre la commande de debug |
Ctrl+alt+O | Affiche les zones de collisions de chaque entité. |
Les commandes de la console de debug
Ce ne sont pas à proprement parler les commandes de la console de debug, vous pouvez aussi les rentrer dans le chat habituel du jeu (il faudra par contre précéder la commande d'un /). La sortie de la commande s'effectue dans la console de debug (dans de rares cas, vous aurez des informations dans le sys.infos)
Commande | Explication |
---|---|
help | Affiche l'aide, possibilité d'avoir une aide plus détaillée sur une command via help command |
pos x y | Vous téléporte aux coordonnées [x,y] données. Vous rend inattaquables par les monstres tant que vous n'utilisez pas un pacte de téléportation |
paintTarget 0-7 | Permet de colorer la cible sélectionnée. Sur des PJ, change la couleur des habits et des cheveux. Sur des PNJ, change l'arme qu'ils ont en main (ou leur en fait porter une s'ils n'en n'ont pas). Sans effets apparemment sur un monstre. Effets visibles uniquement en local ! |
money X | Vous donne X dappers. Effet purement visuel, disparaît à la déconnexion et ne permet pas d'acheter des objets |
learnAllBrick | Permet d'apprendre toutes les briques du jeu. Impossible d'utiliser celles obtenus illégalement par contre, et elles disparaissent à la déconnexion. Notons qu'on peut tout de même profiter des titres liés à certaines briques (champion kami/karavan, la poisse, etc …) pendant la session où on se les ai donné |
setAllSkillValue X | Met tous vos skill au niveau X. Vous avez accès aux titres et si vous regardez votre arbre de compétences vous les avez bien ; cependant, au niveau du jeu ça ne change rien (votre esquive/parade ne changera pas par exemple), il considérera que vous avez toujours vos anciens niveaux. Disparaît à la déconnexion |