Daniel Vouaux (./1) :
... je me prend un avertissement de TIGCC m'annoncant "Value computed is not used" et pointant sur ma commande "GrayMode(GRAY_OFF);".
C'est juste un avertissement, ce n'est pas un vrai problème (le code fonctionnera quand-même sans problème). J'explique:
*
GrayMode est obsolète, tu es censé utiliser
GrayOff() maintenant.
This function has become obsolete. You should use GrayOn and GrayOff now. GrayMode is implemented as a macro which calls one of these two functions; if mode is a constant, the compiler will optimize the code into a single function call.
* À l'époque,
GrayMode retournait toujours une valeur 1 (succès) ou 0 (échec). Maintenant,
GrayOff ne peut pas échouer, seul
GrayOn peut renvoyer 0.
* Donc
GrayMode est une macro définie comme ça:
#define GrayMode(x) ((x) ? GrayOn () : ({
GrayOff ();
(short) 1;
}))
* Tu ne testais déjà pas la valeur de retour de
GrayMode, donc le
(short)1 est calculé, mais pas utilisé.
Pour te débarasser de cet avertissement inoffensif, utilise
GrayOff() à la place.
Le programme se lance tout de même sur TiEmu, qui bug et me balance tout le barda (désassembleur, consoles windows, mémoires, registres et tout le tralala).Pour ce que je peux voir du programme (c'est à dire pas grand chose, les fenêtres de TiEmu faisant bugguer l'affichage -d'ailleurs impossible de les enlever à part avec CTRL-ALT-SUPPR-), il a l'air de fonctionner. TiEmu me met un warning "Program received signal SIGSEGV, Segmentation fault".
Ça veut dire que ton programme a planté, avec une des exceptions que TiEmu récupère par défaut, soit une Illegal Instruction, soit une violation de la protection anti-exécution (bah oui, ça existe sur HW3, et donc TiEmu l'émule, pas comme VTI qui te laisse planter ta calculatrice réelle avec ça).
Pour savoir quelle est l'exception précise, tu vas dans la fenêtre Disassembly, tu fais Window / Breakpoints et tu regardes la barre d'état de la fenêtre Breakpoints.
Je suis allé voir dans l'aide de TIGCC qui m'a dit que "Value computed is not used" révélait un problème d'utilisation de pointeur (notament dans la syntaxe).
Ce n'est pas ça ici, cf. mon explication.
J'en viens donc à ma question, après cette longue mise en contexte : Comment dois-je faire pour ne pas avoir ce warning et pouvoir reprendre mes vieux programmes?
Corriger ton plantage sur Titanium que TiEmu a mis en évidence.
Martial Demolins (./2) :
Pour tout ce qui est TiEmu, on a beau reporter, c'est toujours de la faute du developpeur qui s'y prend mal, donc cherche pas.
Ben, c'est souvent le cas.
Les segfault, je les ai aussi
Ce n'est pas un segfault de TiEmu dont il parle, mais un SIGSEGV de son programme reporté par Insight. Les SIG* de Insight sont des exceptions de la TI traduites en langage *nix pour que Insight comprenne.
Daniel Vouaux (./3) :
Une idée de comment me passer du warning? Je coche "ne plus afficher le warning" et je continue comme si de rien n'était? 
Ça ne résoudra pas ton vrai problème, ça désactivera juste la boîte "Program received SIGSEGV", mais le plantage (qui vient de ton programme) sera toujours là. Il faut vraiment regarder d'où il vient (cf. plus haut: fenêtre Breakpoints, celle accessible depuis Disassembly (Insight en propose une autre pour les breakpoints haut-niveau, mais c'est celle bas-niveau qu'il te faut)).
Pour débloquer l'émulateur, tu fais comme si c'était une vraie calculatrice, tu resettes.

Clic droit - Reset calculator, c'est la seule option du menu qui fonctionne avec le débogueur activé (et ferme le débogueur automatiquement). Tu peux faire un "Revert to saved state" ensuite si tu avais un état sauvegardé valide.
Martial Demolins (./6) :
je redémarre l'ému 
Tu réponds à côté. Ici, c'est son programme qui plante, pas TiEmu, et le plantage est sans doûte reproduisible.
Daniel Vouaux (./7) :
Bah le truc c'est que le programme en question n'est pas buggué... Il marchait très bien avec VTI.
L'un n'implique pas l'autre. Ton programme peut être bogué sur Titanium par exemple, VTI ne le verra pas.
As-tu bien commencé par recompiler ton projet entier avec le nouveau TIGCC (Project/Build - attention, Project/Make ne suffit pas)? Les binaires des anciens TIGCC ne risquent pas de marcher sur Titanium (c'est pour ça que
GhostBuster existe).
Thibaut (./8) :
TIEmu est blindé de bugs, son interface est lente et il est très compliqué à installer. Je te conseille de revenir à VTI
L'utilisation de TIEmu n'est pas à recommander dans l'état actuel des choses.
Je ne suis pas d'accord, TiEmu a plein de fonctionnalités en plus, y compris un vrai débogueur C, et il émule les matériels et logiciels actuels, ce qui peut mettre en évidence des problèmes de compatibilité de vos logiciels avec ces nouvelles versions, ce qui est justement à l'origine de ce non-problème!
Je n'ai que des problèmes avec moi aussi (boîtes de dialogues bizarres qui s'affichent en plein milieu de l'exécution des programmes,
Violation de la protection anti-exécution peut-être? Je rappelle que contrairement à VTI, TiEmu
émule la protection! Donc s'il faut
HW3Patch sur la calculatrice réelle, il le faut aussi sur TiEmu! Ou alors tu choisis d'émuler une HW1.
plantages du débugueur
Je ne peux pas les corriger si on ne me les signale pas.
plantage de l'interface
Idem.
De plus, depuis TIGCC 0.96 Beta 8, TiEmu 3 est une dépendance recommandée de TIGCC (utilisée pour le débogage automatique depuis l'IDE (bouton "Run")).
squale92 (./9) :
Et avec la version sans débugguer de TIEmu ?
Ça ne va rien changer à son problème, qui est que TiEmu intercepte un plantage de son programme. (Ce n'est pas sans débogueur, c'est sans GDB, il y a toujours le débogueur bas-niveau style VTI, et c'est celui-là qui va s'ouvrir sur son plantage.)
squalyl (./10) :
moi j'ai tiemu 2.08, il marche à peu près pas mal 
S'il vous plaît arrêtez d'utiliser TiEmu 2 qui n'est plus mis à jour et a pas mal de bogues connus et des fonctionnalités en moins. Si c'est GDB le problème, ben on peut compiler sans et Romain propose des binaires Win32 sans GDB. (Mais je conseille fortement la version avec GDB pour tout programmeur TIGCC, je sais que l'intégration avec GDB n'est pas tout à fait sans bogues, mais avoir un vrai débogueur C est quand-même un avantage énorme.)
Martial Demolins (./11) :
Sinon l'émulation de l'écran est un peu bizaroïde, j'arrive à jouer à mon tunnel (ah non Thibaut, pas de release
) sur VTI et real calc, mais c'et impossible sur TiEmu (l'écran déconne à mort)
Hmmm, je peux le voir, ton programme? Il doit faire quelque chose de pas du tout courant avec l'écran (genre ta propre routine de gris qui fonctionne différemment de celles courantes?). TiEmu a des heuristiques assez complexes pour afficher des niveaux de gris parfaits, donc si on fait quelque chose de bizarre, c'est possible de le faire boguer.
squalyl (./14) :
Martial > moi je débogue à coup de printf 

ce qui m'amène au bug suivant, chaque fois qu'on fait "select rom image" la fenêtre "ouvrir un fichier" se fout en arrière plan 
C'est parce qu'on prend les dialogues de fichiers natifs que GTK+ n'aime pas trop parfois. Est-ce mieux dans la 3.01? (Je rappelle que TiEmu 2 n'est plus supporté.)
Thibaut (./17) :
Martial, tu codes en ASM. Donc tu sais où se situe le bug quand tu vois le débugueur se mettre en action sur tel endroit. En C, c'est plus difficile de savoir à quelle ligne de quel fichier correspond la suite d'instructions ASM que montre le débugueur 
Justement, c'est là tout l'intérêt du débogueur C de TiEmu (version avec GDB)! Tu ne sais pas ce que tu rates!