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 » Bug TIGCC 'Merge constants' ? (40 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Mercredi 1er septembre 2004 à 18:16 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Après une heure de codage je crois avoir trouvé un bug dans TIGCC mais je n'en suis pas sûr. (sans doute ça peut venir de mon projet assez volumineux ou encore de mon ordi).
J'ai essayé à plusieurs reprises le code suivant:

printf ("? ");

Mais la fonction printf ne s'execute pas correctement, à aucun moment j'ai le texte "? ".

J'ai donc essayé le code suivant:
printf ("%s","T);

Le projet ne se compile pas, l'IDE se ferme tout seul, j'ai donc recommencé et TIGCC fait que de planter, bloquant le système.

J'ai donc essayé de désactiver "Merge constants" dans les options du Linker et maintenant le projet se compile correctement et la fonction printf s'execute correctement.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
Folco Ecrit le: Mercredi 1er septembre 2004 à 18:25 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


gloups, tu as essayé sur un projet qui ne contient que ça??
en tout cas, je vais essayer pour te dire.
En tout cas, encore une séance de noeuds au cerveau pour Kevin...
<<< 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°2   Marquer comme non lu.
geogeo Ecrit le: Mercredi 1er septembre 2004 à 18:29 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


J'ai essayé avec un projet plus petit ça semble passer à merveille.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°3   Marquer comme non lu.
Folco Ecrit le: Mercredi 1er septembre 2004 à 18:30 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


avec ou sans 'merge constants', ça marche chez moi...
(juste la ligne incriminée et un ngetchx pour observer le résultat)

Au fait, où sont documentées les différentes options du linker (entre autres 'merge constans', je ne sais pas ce que ça veut dire)?
<<< 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°4   Marquer comme non lu.
geogeo Ecrit le: Mercredi 1er septembre 2004 à 18:33 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Merge constants permet de ne pas avoir des doublons de "%f" par exemple dans un printf.
Genre si tu fais printf ("%f",52.3); et ensuite printf ("%f",58.1); "%f" ne sera stocké une seule fois dans ton programme.

Pour la documentation, regarde dans l'aide de TIGCC y a tout, essayes de faire une recherche. :)
-Edité le Mercredi 1er septembre 2004 à 18:33 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°5   Marquer comme non lu.
GoldenCrystal Ecrit le: Mercredi 1er septembre 2004 à 21:25 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Est-ce que la partie qui entoure le printf fonctionne/compile correctement ?
-Edité le Mercredi 1er septembre 2004 à 21:26 par GoldenCrystal-
Kupo !
    
./Post n°6   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 1er septembre 2004 à 23:14 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  


Tu as la bêta 16 (le patch à appliquer à la bêta 15)?
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°7   Marquer comme non lu.
geogeo Ecrit le: Jeudi 2 septembre 2004 à 00:34 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


oui, je te fais un pack avec les sources demain.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 2 septembre 2004 à 00:41 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  


Raaah... Il doit encore y avoir un bogue d'accès mémoire. :( Ces trucs étaient censés être corrigés dans la bêta 16. :( Je vais aller voir avec Valgrind dès que je serai chez moi (cette semaine).
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°9   Marquer comme non lu.
geogeo Ecrit le: Jeudi 2 septembre 2004 à 00:56 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Voilà les sources.
http://tisofts.free.fr/divers/gfa020904.zip
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 3 septembre 2004 à 22:40 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  


Kevin Kofler :
Tu as la bêta 16 (le patch à appliquer à la bêta 15)?

geogeo :
oui, je te fais un pack avec les sources demain.

Non. Tu n'as pas la bonne version. Ça plante avec la bêta 15, pas avec la bêta 16. Tu n'as pas mis à jour link.dll correctement.
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.
geogeo Ecrit le: Vendredi 3 septembre 2004 à 23:30 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah pourtant si j'ai bien fait un copier coller de la version envoyée.
Link.dll 9 aout 2004.

Ou alors j'ai pas suivie la dernière version et je suis à l'ouest.

Je voudrais signaler un petit bug de l'IDE, en GNU68K, .xdef n'est pas reconnu au niveau de la coloration syntaxique.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°12   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 septembre 2004 à 01:18 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  


Bah, tu veux que je dise quoi? J'ai vérifié aussi avec Valgrind (sous Linux), même résultat. Bêta 15:
==2287== Memcheck, a memory error detector for x86-linux.
==2287== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==2287== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==2287== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==2287== For more details, rerun with: -v
==2287==
==2287== Invalid read of size 4
==2287==    at 0x804F7CA: MergeConstants (constmrg.c:60)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==  Address 0x1BBF121C is 4 bytes inside a block of size 140 free'd
==2287==    at 0x1B902FB1: free (vg_replace_malloc.c:153)
==2287==    by 0x804B05E: FreeSection (manip.c:130)
==2287==    by 0x804FD1E: MergeConstants (constmrg.c:116)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==
==2287== Invalid read of size 4
==2287==    at 0x804F7D3: MergeConstants (constmrg.c:61)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==  Address 0x1BBF1234 is 28 bytes inside a block of size 140 free'd
==2287==    at 0x1B902FB1: free (vg_replace_malloc.c:153)
==2287==    by 0x804B05E: FreeSection (manip.c:130)
==2287==    by 0x804FD1E: MergeConstants (constmrg.c:116)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==
==2287== Invalid read of size 4
==2287==    at 0x804F7E1: MergeConstants (constmrg.c:62)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==  Address 0x1BBF1260 is 72 bytes inside a block of size 140 free'd
==2287==    at 0x1B902FB1: free (vg_replace_malloc.c:153)
==2287==    by 0x804B05E: FreeSection (manip.c:130)
==2287==    by 0x804FD1E: MergeConstants (constmrg.c:116)
==2287==    by 0x804A2BE: main (main.c:312)
==2287==
==2287== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 13 from 1)
==2287== malloc/free: in use at exit: 0 bytes in 0 blocks.
==2287== malloc/free: 15400 allocs, 15400 frees, 5128682 bytes allocated.
==2287== For counts of detected errors, rerun with: -v
==2287== No malloc'd blocks -- no leaks are possible.

Bêta 16:
==2249== Memcheck, a memory error detector for x86-linux.
==2249== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==2249== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==2249== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==2249== For more details, rerun with: -v
==2249==
==2249==
==2249== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 1)
==2249== malloc/free: in use at exit: 0 bytes in 0 blocks.
==2249== malloc/free: 15400 allocs, 15400 frees, 5128682 bytes allocated.
==2249== For counts of detected errors, rerun with: -v
==2249== No malloc'd blocks -- no leaks are possible.

Tu as mis la DLL dans quel répertoire? Il faut la mettre dans le répertoire Bin, en écrasant celle livrée avec la bêta 15.
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°13   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 septembre 2004 à 01:21 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  


Et vérifie aussi que ta cc1.exe est bonne au passage (là aussi, il faut écraser celle d'origine, pas la mettre n'importe où).
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°14   Marquer comme non lu.
geogeo Ecrit le: Samedi 4 septembre 2004 à 12:53 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah j'ai tout mis dans bin, bon je vais retélécharger TIGCC sur le site et voir ce que ça donne.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°15   Marquer comme non lu.
geogeo Ecrit le: Samedi 4 septembre 2004 à 13:18 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bon je viens réinstaller TIGCC avec le patch corretement.
Je viens de réactiver l'option 'Merge Constants' au projet que je t'ai envoyé et là j'arrive à compiler, mais les printf ("? "); ne fonctionnent pas. On dirait qu'il prend à la place le printf ("\n");

http://tisofts.free.fr/GFABasic/gfa040904.zip

Pour tester il suffit de créer un fichier texte genre test et de taper dedans:
Cls
Input "Value ";A


De lancer le programme de cette façon:
gfabasic("test");
Puis
gfabasic("tokens");

Si on recompile le projet mais en désactivant 'Merge Constatns' dans les options du linker, et qu'on réexecute le programme, le programme va correctement fonctionner en affichant le point d'interrogation.

Avec Merge Constants ça donne:
Value
|


Sans Merge Constants ça donne:
Value ? | (Ce qui est correct)

Le code de Input se trouve dans le fichier TokensFunc.c et dans la fonction void ExecToken_Func_Input (void).

Désolé d'insister mais je suis persuadé d'avoir correctement installé le patch, puisque l'autre fois j'avais signalé un bug avec Merge Constants et j'ai installé le patch pour le corriger. Et là j'ai tout réinstallé correctement.
-Edité le Samedi 4 septembre 2004 à 13:19 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°16   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 septembre 2004 à 17:52 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  


Bon, je vais essayer ce truc-là alors, on va voir. :)
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°17   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 septembre 2004 à 23:50 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  


Bon, bogue confirmé. Décidemment, le constant merging fait n'importe quoi. :(
DUMP 4:
   .LC18: (local)
     0x000011: 3F 20 00

DUMP 4 (const-merged):
   .LC4: (local)
   .LC5: (local)
   .LC18: (local)
     0x00000B: 0A 00

!?!
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°18   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 septembre 2004 à 23:53 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  


Le label .LC18 est déplacé en tant que partie du groupe de labels de .LC5.
DUMP 4:
Section
  File: Sources/Codes/TokensFunc.o
  Can Cut Ranges
  Mergeable
  Unaligned
  Data
   .LC0: (local)
   Sources/Codes/TokensFunc.o .rodata.__unalignedstr: (local)
     0x000000: 20 00
   .LC1: (local)
     0x000002: 25 6C 64 00
   .LC2: (local)
     0x000006: 25 64 00
   .LC3: (local)
     0x000009: 25 66 00
   .LC4: (local)
     0x00000C: 25 73 00
   .LC5: (local)
     0x00000F: 0A 00
   .LC18: (local)
     0x000011: 3F 20 00

DUMP 4 (const-merged):
Section
  File: Sources/Codes/TokensFunc.o
  Can Cut Ranges
  Mergeable
  Unaligned
  Data
   .LC0: (local)
   Sources/Codes/TokensFunc.o .rodata.__unalignedstr: (local)
     0x000000: 20 00
   .LC1: (local)
     0x000002: 25 6C 64 00
   .LC2: (local)
     0x000006: 25 64 00 3F 20 00

Reste à savoir pourquoi le linker fait ça. Je sens une session de débogage avec Insight venir. (Valgrind ne peut pas m'aider ici malheureusement.)
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°19   Marquer comme non lu.
geogeo Ecrit le: Samedi 4 septembre 2004 à 23:55 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


lol, mdr le caractère n°10. %)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Programmation C » Bug TIGCC 'Merge constants' ? (40 réponse(s))
Pages : 1/3     « [1] 2 3 » »|

.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 45.21ms avec 18 requetes