Code de sortie 1, je trouve pas dans les logs, help me pls

Shilde

Aventurier
24 Janvier 2023
22
1
6
22
Bonsoir à vous, j'aimerais de l'aide pour mon minecraft en 1.19.2 sur forge

Comme le dit le titre, j'ai un code de sorti 1 et même après avoir exploré un peu les logs avec mon faible niveau de compréhension, je ne trouve pas ce qu'il manque ou ce qui fait crash

Je vous donne la latest log et la debug log

Merci d'avance

(ps: si vous pouviez aussi expliquer comment vous trouvez l'erreur, ça m'aiderai beaucoup moi et peut-être d'autre plus tard ^^, j'ai envie de comprendre pour aider à mon tour si possible)
 

Fichiers joints

Tu es toujours sous Forge 43.2.8, il faut que tu changes la version dans l'onglet des configurations.
J'ai pris une version plus récente, malheureusement même problème, crash en plein jeu au bout de quelque minute avec un code erreur -1 et un rapport de crash
 

Fichiers joints

Je crois que c'est bon, j'ai plus de soucis pour l'instant
J'ai mis à jour optifine mais je pense pas que ça est réglé le soucis
Dans le rapport de crash, il était fait mension de coordonné et d'une région, j'ai donc supposé qu'il y avait une corruption de map et j'ai supprimé la région pour la réinitialisé
J'ai ensuite pu relancé le monde et en 1h de jeu, il n'a pas crash

Je vais faire quelque test encore mais je pense avoir trouvé le problème, cependant tu as raison, j'ai pas mal de mods un peu vieux que je vais mettre à jour

Merci beaucoup pour l'aide que tu m'as apporté ^^

Si tu veux bien, je suis toujour partant pour apprendre à mieux lire les logs et rapport de crash, ça m'aidera beaucoup à l'avenir et peut-être à d'autre ^^
 
Il faut d'abord comprendre qu'un programme plante parce qu'il a été programmé pour planter ; imaginons une recette de cuisine qui te demande -10 grammes de beurre, tu ne peux rien faire d'autre que d'arrêter d'exécuter la recette.

De la même façon, un programme peut diviser deux nombres, mais si tu demandes 1 ÷ 0 il sera un peu embêté et crashera.

En revanche c'est possible dans certains calculs d'avoir des divisions par zéro acceptables (0 × 1/0 = 0), mais un ordinateur ne fera pas de tel raisonnement donc c'est au développeur de dire « si on multiplie par zéro, pas besoin de calculer ce qui suit » afin d'éviter un crash.

Donc pour résumé, un programme qui crash aura toujours une raison écrite, et les gentils développeurs ajouteront même plus de détail ; « Division par zéro en tentant de mettre à jour le bloc aux coordonnées (x, y, z) ».



Tous les languages de programmation modernes permettent de regrouper des instructions sous forme de fonction. Le système d'exploitation appelle la fonction principale main qui peut à son tour appeler d'autres fonctions qui elles-mêmes peuvent appeler d'autres fonctions, c'est ce qu'on appelle la pile d'appel (stack trace) et celle-ci s'affiche généralement de la plus récente à la plus vieille ;
Code:
ArithmeticException: / 0
Stack trace:
    at updateBlock()
    at updateWorld()
    at main()

En Java les erreurs s'appellent des exceptions, et même si le message est un peu légé « / 0 », la pile d'appel te permet de comprendre que le jeu était en train de mettre à jour (= calculer la logique à effectuer) un bloc.

À noter que la mémoire n'est pas recopiée par défaut, donc impossible de connaître les coordonnées du bloc en question sans plus d'info (ce que rajoute Minecraft).

Maintenant, pour ranger un peu le tout les fonctions en Java appartiennent toutes à une classe qui appartiennent elles-mêmes à un dossier ;
Code:
    at com.google.common.cache.LocalCache.get()
    at mezz.jei.common.render.ItemStackRenderer.render()
Le début est généralement sous forme de com.groupe.projet ou com.projet, la suite représente des paquets de rangement, ensuite arrive la classe puis finalement la fonction (respectivement l'avant-dernier et le dernier mot).

Auteur
Nom du projet
Dossier
Nom de la classe
Nom de la fonction
GoogleCommoncacheLocalCacheget
MezzJEIcommon/renderItemStackRendererrender

C'est comme ça que tu peux trouver les mods fautifs, tu commences par le haut du stack trace, et tu trouves la première ligne qui contient un mod (tu peux généralement ignorer com.google et net.minecraft), et au besoin il suffit de chercher les trois premiers mots sur Google « com ldtteam domumornamentum » pour que tu tombes sur la page CurseForge du mod (c'est pas rare d'abréger le nom du projet, style tconstruct pour Tinker's Construct).

Une exception notable pour les Mixin de Sponge (org.spongepowered.asm.mixin) qui permettent aux mods de modifier le code source du jeu, généralement c'est des exceptions chaînées et y'a pas vraiment besoin du stack trace (vu que c'est la modification que le mod demande qui échoue, le mod sera pas présent dans le stack trace vu que c'est les Mixin qui font le travail de modifier le code du jeu) ;
Code:
RuntimeException: InvocationTargetException
Caused by: MixinTransformerError: An unexpected critical error was encountered
Caused by: InjectionError: Critical injection failure: Redirector redirectGetFancyWeather()Z in rubidium.mixins.json:features.options.MixinWorldRenderer failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap rubidium-refmap.json
Cf. mon 2e message, Mixin crash en tentant d'appliquer une modification de Rubidium.

Et après oui ton crash parlait d'un bloc, mais au vu de son nom ça ressemblait à un bloc basique (style bloc de terre) sans aucune logique particulière donc pour moi le jeu recrashera si t'en reposes un, c'était pas une vraie solution de l'enlever, surtout si le bloc apparaît naturellement.

Après tu peux toujours reprendre tes crashs et me dire ce que tu en comprends, cependant je suis en vacances et n'ai prit que mon téléphone donc c'est pas très pratique pour écrire des pavés ou lire des logs, mais si ça ne te presse pas et que tu n'as rien compris je pourrais refaire ça plus proprement en rentrant.
 
Dernière édition:
Franchement merci beaucoup pour tout ça, je penserai à m'en servir si je rencontre un problème plus tard
J'espere que ça aidera d'autre utilisateur ^^
En tout cas, passe de bonne vacances et peut-être que je reviendrai en demandé plus un autre jour ;)