Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Heap Compress (19 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Invité Ecrit le: Samedi 17 juillet 2004 à 10:38 Déconnecté(e)    
 
Bonjour,

J'ai remarqué que défois (rarement) quand je quitte mon programme dans Virtual TI, la calculatrice reste figée avoir l'écran home du TIOS alors j'ai regardé dans quelle fonction le plantage a eus lieu et j'ai vu que c'était dans la fonction HeapCompress du TIOS alors d'où peut venir ce plantage (trop de variable globales?!?)


Merci d'avance ;)
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 17 juillet 2004 à 15:46 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Un débordement d'un tableau a corrompu des endroits de la RAM utilisés par le heap manager de AMS. Vérifie tous tes accès aux tableaux pour voir si l'index est valide.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°2   Marquer comme non lu.
Invité Ecrit le: Samedi 17 juillet 2004 à 17:39 Déconnecté(e)    
 
Le problème, je vois pas trop d'endroit où il peut y avoir un débordement de tableau (j'ai mis des conditions partout pour vérifier que je ne dépasse pas

mais est-ce-que ça peut venir du fait qu'il y avait une variable globale trop grosse ou d'une lecture plus ou moins "sale" ?

Ce qui m'énerve c'est que je ne suis même pas capable de refaire l'erreur et que si je la trouve pas maintenant, mon prog plantera comme ça sans prévenir :'(

(La fonction HeapCompress faisait une boucle infinie)
-Edité le Samedi 17 juillet 2004 à 17:47 par BenZ-
    
./Post n°3   Marquer comme non lu.
Sasume Ecrit le: Samedi 17 juillet 2004 à 17:56 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Qu'est-ce que tu fais avec tes vars globales pour en avoir aussi honte ?
    
./Post n°4   Marquer comme non lu.
Invité Ecrit le: Samedi 17 juillet 2004 à 18:01 Déconnecté(e)    
 
>Qu'est-ce que tu fais avec tes vars globales pour en avoir aussi honte ?


C'était pas très optimisé, car j'étudiais le principe du prog mais c'est chose faite maintenant c'est bien mieux optimisé (j'ai démarré mon prog 200 fois et il a toujours pas planté) alors je me pose des questions car si ça vient pas de là, il y a une faille
-Edité le Samedi 17 juillet 2004 à 18:06 par BenZ-
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 17 juillet 2004 à 19:05 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Peut-être aussi un débordement de l'écran lors de l'affichage?
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Invité Ecrit le: Samedi 17 juillet 2004 à 19:23 Déconnecté(e)    
 
non, je pense pas à l'affichage je n'ai qu'une présentation très simple avec uniquement des printf

ce qui me paraît bizare c'est que mon prog ne fait que de lire le fichier un peu bizarement en utilisant un pointeur, puis il le traite puis écris conventionellement dans le fichier

a moins que ça vienne de Virtual TI lui même je vais essayer de mettre à jour sur ma rom
    
./Post n°7   Marquer comme non lu.
Sasume Ecrit le: Samedi 17 juillet 2004 à 19:32 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Il y a de plus fortes chances que la source du problème vienne de ton programme.
Fais attention à toutes les écritures que tu fais, surtout si elles sont dans des boucles.
    
./Post n°8   Marquer comme non lu.
Invité Ecrit le: Samedi 17 juillet 2004 à 19:40 Déconnecté(e)    
 
le problème c'est que je suis plus capable de refaire crasher mon programme (mais je vais tout relire en faisant particulièrement attention aux boucles)
    
./Post n°9   Marquer comme non lu.
Folco Ecrit le: Samedi 17 juillet 2004 à 20:54 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


C'est le type même de problème qui me prend le plus la tête...
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 17 juillet 2004 à 23:49 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


La commande HeapShuffle peut aider à déboguer ce genre de problèmes.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°11   Marquer comme non lu.
Lionel Debroux Ecrit le: Dimanche 18 juillet 2004 à 11:59 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

En effet, mais attention, HeapShuffle ne marche que sur AMS 2.xx (MIN_AMS >= 200).
Lionel Debroux - membre de TICT.
    
./Post n°12   Marquer comme non lu.
Invité Ecrit le: Dimanche 18 juillet 2004 à 14:14 Déconnecté(e)    
 
J'ai mis des HeapShuffle depuis plusieurs heures (je n'ai qu'un pentium 500) avant chaque ecriture dans le tableau et à tout endroit suspect, et ça n'a pas planté jusqu'à maintenant. Si le programme fini de convertir le fichier sans planter je vais faire comme si ce problème n'existe plus car ça fait plus d'une journée que j'essaye de refaire apparaître ce bug sans succès.

au fait le problème, il ne peut venir que d'un débordement de tableau???



-Edité le Dimanche 18 juillet 2004 à 14:25 par BenZ-
    
./Post n°13   Marquer comme non lu.
Sasume Ecrit le: Dimanche 18 juillet 2004 à 14:28 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Non, mais c'est le cas le plus probable.
    
./Post n°14   Marquer comme non lu.
Invité Ecrit le: Dimanche 18 juillet 2004 à 15:21 Déconnecté(e)    
 
Ca y est j'ai trouvé, je suis extrêmement content
#merci#
Effectivement il y avait un "dépassement de tableau" mais dans le sens négatif, #fou# c'est vrai que j'aurai dûr faire attention aux caractères négatifs (cf caractere '§')


je vais donc aller corriger ça tout de suite :)
-Edité le Dimanche 18 juillet 2004 à 15:26 par BenZ-
    
./Post n°15   Marquer comme non lu.
Sasume Ecrit le: Dimanche 18 juillet 2004 à 15:26 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Déclare tes caractères en unsigned char :)
    
./Post n°16   Marquer comme non lu.
Invité Ecrit le: Dimanche 18 juillet 2004 à 15:53 Déconnecté(e)    
 
Ou alors code en ASM directement, ça évitera ce genre de soucis. :)
    
./Post n°17   Marquer comme non lu.
Sasume Ecrit le: Dimanche 18 juillet 2004 à 16:20 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Pas forcément...
    
./Post n°18   Marquer comme non lu.
Sasume Ecrit le: Dimanche 18 juillet 2004 à 16:22 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

  moveq.l #'é',d0
  move.b  tab(a0,d0),d0
    
./Post n°19   Marquer comme non lu.
Folco Ecrit le: Lundi 19 juillet 2004 à 11:58 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


lol, tu vas chercher ça loin, ce n'est pas très courant
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
  :: Index » Forum Ti68K » Programmation C » Heap Compress (19 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 46.85ms avec 26 requetes