1

Bonjour à tous!

Ayant un peu de temps libre pendant les vacances, je me remet à la programmation.

Or j'ai reformaté mon ordinateur il y a peu, et j'ai donc profité de ce nouveau départ pour installer les "nouveaux" logiciels. Je suis donc passé d'un TIGCC datant de 2002/2003 à TIGCC 0.96b8 et d'un VTI (configuré sur une TI89 hw1 il me semble) poussiéreux à la dernière version de TiEmu (configuré avec une TI89Titanium version 3.10).

Bien sur je n'ai pas effacé mes anciens programmes et voila que je souhaite en continuer un, commencé avec la version de TIGCC que j'utilisais précédement.
Il marchait auparavant (pas très compliqué le programme d'ailleurs, je venais de le commencer).

Avant toute modification, je le recompile avec mon nouveau TIGCC et là... <suspense intense>
... je me prend un avertissement de TIGCC m'annoncant "Value computed is not used" et pointant sur ma commande "GrayMode(GRAY_OFF);". 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".

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). Bon, je n'ai aucun doute sur le fait que mon "GrayMode(GRAY_OFF)" mange du pointeur à tous les repas (qu'est-ce qui, en C, n'utilise pas les pointeurs? grin ) du coup je suis allé voir de son coté.
J'apprend alors que maintenant GrayMode() est obsolète et qu'il faut maintenant utiliser GrayOff(). Je me dis que le problème vient certainement de là (même si, bien qu'obsolète, une fonction est sensée marcher, non?) et je change donc mon appel de fonction.

Et là, je n'ai plus de warning dans TIGCC, mais le warning de TiEmu persiste.

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?

Je ne sais pas si cela vient d'un problème de compatibilité entre les sources générées par les différentes versions de TIGCC ou d'autre chose encore (type la version 0.96b8 qui a encore des bugs -c'est une bêta après tout, bien qu'apparement plus aboutie que la version "officielle"-, ou bien une incompatibilité avec la TI89T 3.10, etc...).

J'espère que vous pourrez m'aider à résoudre mon problème.

Merci d'avance,

Daniel.
avatar
Ancien pseudo : worfang.

2

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? grin
avatar
Ancien pseudo : worfang.

4

5

Ben oui je comptais pas faire ce que j'ai écrit, c'était ironique. oui
C'est déjà arrivé à quelqu'un d'autre comme problème?
Martial, tu dis que les Segmentation fault t'arrivent aussi, qu'est-ce-que tu fais dans ce cas?
avatar
Ancien pseudo : worfang.

6

7

Bah le truc c'est que le programme en question n'est pas buggué... Il marchait très bien avec VTI. D'ailleurs j'ai testé avec d'autres anciens programmes de ma conception et j'ai toujours le même problème.
avatar
Ancien pseudo : worfang.

8

TIEmu est blindé de bugs, son interface est lente et il est très compliqué à installer. Je te conseille de revenir à VTI smile L'utilisation de TIEmu n'est pas à recommander dans l'état actuel des choses.

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, plantages du débugueur, plantage de l'interface, etc).

Pour TIGCC, il y a d'autres personnes qui ont eu des soucis lors du passage à la version 0.96 (Lionel Debroux par exemple), mais il semble ce ne sont pas souvent des problèmes graves smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

9

Et avec la version sans débugguer de TIEmu ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

10

oué j'aurais proposé pareil grin

moi j'ai tiemu 2.08, il marche à peu près pas mal smile

11

12

Oui, la première utilité d'un émulateur c'est de débuguer...

Martial : tu fais un package pour le WE prochain ? tongue
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

13

14

Martial > moi je débogue à coup de printf grin

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 triso

15

16

17

Je fais pareil. En C, c'est très pratique Martial wink
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 wink printf est très pratique pour afficher régulièrement l'endroit où l'on se trouve dans les sources et la valeur des variables.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

18

19

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? grin

Ç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. smile 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 grin

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 smile 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 smile

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 trinon) 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 grin

sick
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 triso

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 wink

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!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

Si si, je sais tongue Je rate une série de crashs et de bugs...
plantages du débugueur
Je ne peux pas les corriger si on ne me les signale pas.
plantage de l'interface
Idem.

topics/92954-connexion-avec-tiemu/14#413 .......
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

21

Ce n'est pas reporter un bogue ça, c'est dire vaguement qu'il y a un problème. Tu n'as donné aucune indication comment reproduire le problème, ni le programme que tu as débogué quand tu l'as eu.

Maintenant, il y a aussi le problème que c'est compliqué de déboguer ces problèmes et que je n'ai pas beaucoup de temps, donc ne t'attends pas à ce qu'il soit corrigé dans les 24 heures. grin Mais si je n'ai pas les informations qu'il me faut, ce ne sera jamais corrigé, je ne suis pas clairvoyant. roll
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

23

Même en mode High LCD Update? Il faut qu'on rajoute un Ultra-High LCD Update pour ton Tunnel? gni
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

25

Le vrai LCD ne rafraîchit pas à 300 fps non plus. roll
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

Le programme est évidemment Einstein, dont tu as les sources. C'est explicité 4 posts avant.
Je pense que tu es surtout atteint d'une petite flemme et c'est pour ça que quand tu ne jettes pas la faute sur l'utilisateur, tu dis que le report de bug est mal fait ou tu dis que c'est normal...

En attendant je suis revenu à VTI qui ne possède pas tous ces bugs.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

27

28

Si, il rafraîchit, mais à partir d'une mémoire interne (qui snoope les accès en écriture).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

29

Kevin Kofler (./20) :
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.

OK noté
Kevin Kofler (./20) :
sick.gif

+ "sur PC" grin évidemment sur calculette on peut pas faire ça smile
Kevin Kofler (./20) :
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 teste, je vais te dire.

30

squalyl (./29) :
je teste, je vais te dire.


OK, testé, ça marche.
A noter que dans la fenêtre "Infos..." il y a toujours marqué TI Emu 2. Je fais un bug report à qui, pour ça? grin