Bon, comme j'ai un peu de temps là, j'ai regardé ce que ça donne. TI-89 HW1 AMS 2.09. Je fais "Debug file with TiEmu", je charge ton programme, j'envoie PreOs 1.0.4 (avec
stdlib), je fais
preos("install"), puis je lance ton programme. Le débogueur se charge comme prévu, mais j'ai un message "Make breakpoint pending on future shared library load?" Je dis "non", parce que le symbole qu'il cherche n'existe tout simplement pas (et même s'il était dans une lib, le débogueur n'aurait pas les infos de débogage pour la lib). Comme explication, il suffit de donner la sortie dans la console GDB:
Function "__main" not defined.
Comme tu n'as pas de code de démarrage, tu n'as pas de
__main (c'est le nom interne de
_main dans TIGCC, justement pour permettre le code de démarrage en kernel:
_main est appelé comme ça pour la compatibilité antérieure, mais on ne veut pas en faire le
_main kernel, on veut du code de démarrage, donc il y a un
#define _main __main dans TIGCCLIB). Le débogueur est fait pour déboguer des programmes TIGCC, donc des programmes qui utilisent notre code de démarrage! Ensuite, j'ai l'habituel "Program received SIGTRAP, Trace/breakpoint trap", je dis OK, c'est le program entry breakpoint. Comme tu n'as pas de
__main, je mets un breakpoint directement sur le
_main kernel:
(gdb) break _main
Breakpoint 1 at 0x3c9d0: file main.s, line 34.
Je clique sur Continue... oups, ça ne breake pas (-> bogue). Regardant de plus près, le code en 0x3c9d0 n'est pas le code du début de
_main, donc il y a un problème dans les informations de débogage. Si tu as eu des plantages au chargement des informations de débogage, c'est probablement le même bogue.
Je confirme que c'est un bogue de la chaîne d'outils (TIGCC ou TiEmu).