Obligement - L'Amiga au maximum

Mardi 21 novembre 2017 - 16:48  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : Amiga E - les coulisses du langage E (débogueurs, profileurs...)
(Article écrit par Pierre Girard et extrait d'Amiga News - novembre 1997)


Ce mois-ci, je vous propose un petit intermède. Nous ne parlerons donc pas de programmation mais d'environnement de programmation. Vous savez, les débogueurs, profileurs et autres créateurs d'interfaces graphiques utilisateur.

J'ai choisi dans la distribution officielle du langage E et dans le domaine public, les utilitaires qui me paraissent les plus importants pour concevoir un programme en E. Le corps de cet article sera structuré chronologiquement, suivant à peu près la même démarche que le concepteur d'un programme.

Les aides à la programmation

Elles peuvent être de deux sortes :
  • Les créateurs d'interfaces graphiques utilisateur, MUIBuilder ou GadtoolsBox par exemple.
  • Les modules E, créés par des passionnés, qui rendent souvent de grands services.
Je ne m'étendrai pas plus sur les "GUI builders" ayant déjà consacré deux articles à MUI (1, 2), mais il faut quand même dire un mot sur les modules E que l'on peut trouver dans le domaine public. Ceux-ci sont en fait des morceaux de programmes qui évitent de refaire un travail qui a déjà été fait (mieux ?) par d'autres. Certains de ces modules sont très puissants et permettent par exemple d'insérer une interface ARexx dans son programme, de gérer des commodités ou encore de jouer un module Protracker en appelant seulement une fonction ! Quelquefois, il faut savoir chercher dans le DP pour y trouver des perles rares.

L'aide en ligne

Tout cela est bien beau, mais quand on commence à avoir une pléïade de modules externes, comment fait-on pour s'y retrouver ? On utilise des programmes d'aide ! Il existe tout d'abord l'aide disponible pour la documentation du E et qui est au format AmigaGuide. J'ai nommé E AutoGuide de Sven Steiniger. Une petite macrocommande dans votre éditeur de texte préféré et hop, on a l'aide sous les yeux (bon, il est vrai que pour une véritable aide en ligne prenant en compte le mot sous le curseur, il faut un peu plus de boulot).

En ce qui concerne les modules, j'ai trouvé un utilitaire exceptionnel qui s'appelle FindModule, écrit par Jason R. Hulance. En résumé, c'est un "showmodule" très évolué puisqu'il n'y a même pas besoin de savoir dans quel module se trouve l'objet ou la définition cherchée. Un exemple ? Vous voulez allouer une plage mémoire en mémoire Chip mais vous ne savez plus la valeur de MEMF_CHIP ou bien vous voulez l'écrire en toutes lettres mais vous ne savez plus dans quel module il est défini. Rien de plus facile : vous lancez FindModule (assigné à une touche, par exemple), vous tapez MEMF_CHIP et c'est tout ! Après avoir parcouru tous les modules, FindModule vous affiche Emodules:exec/memory.m - <CONST MEMF_CHIP>2, ce qui vous apprend que la constante MEMF_CHIP est définie dans exec/memory.m et que sa valeur est 2. Whaaaooouuu !

Le débogage

Une fois votre programme fini (en apparence), il ne marche pas (9 fois sur 10). Vient alors la phase de débogage. C'est ici qu'intervient le programme EDBG de l'auteur du E lui-même, Wouter Van Oortmerssen. Il fonctionne très bien (au moins sur les "petits" programmes) et permet un suivi au niveau du source. L'utilisation en est fort simple. On lance EDBG suivi du nom du programme à déboguer (il ne faut pas oublier de compiler avec les symboles !). On se retrouve face au programme source que l'on peut parcourir pas à pas. La flèche du bas permet d'exécuter la ligne courante et celle de droite d'entrer dans les procédures. A tout moment, il est possible de voir et de modifier la valeur d'une variable, simplement en cliquant dessus, de vérifier le contenu des registres...

De même, on peut examiner le contenu d'une adresse mémoire quelconque et, plus important, poser des "break points" afin que le programme arrête son exécution à l'endroit désiré (autant de temps de gagné à ne pas tracer à la main).

Voilà pour le débogueur "officiel" qui est d'ailleurs très bien pensé. Si vous êtes curieux, vous pouvez aussi aller voir du côté d'un débogueur, moniteur système (qui fait pas la vaisselle mais presque), j'ai nommé Powervisor de J. Tyberghein. C'est une véritable usine à gaz qui peut tout faire si l'on se donne la peine de le configurer (il y a déjà presque 1 Mo de documentation !).

Il reste quand même un problème. Quand le programme refuse obstinément de marcher et que ce fameux débogueur nous indique qu'il y a bien la valeur $45256 dans A2. On est d'accord, mais elle correspond à quoi cette adresse ? C'est donc ici qu'intervient Explorer. C'est en gros un moniteur mémoire, mais celui-ci permet d'afficher les modules E correspondant à l'adresse de l'objet souhaité (hum, je crois que ce n'est pas très clair...). Par exemple, vous êtes en train de tracer pas à pas votre programme dont la routine ARexx ne marche pas. Vous notez l'adresse de la structure rexxmsg, vous passez sous le Workbench et lancez "explorer all" (pour charger tous les modules). Il ne vous reste plus qu'à taper l'adresse notée plus haut et à sélectionner rexxmsg dans les objets affichés à gauche. Votre objet se trouve alors affiché comme par magie avec tous les champs remplis (ou non), ce qui vous permet de déterminer très facilement d'où vient l'erreur.

Ce moniteur est d'autant plus puissant qu'il permet de sauter d'un objet à un autre (sous structure) d'un simple clic. A noter, l'accès direct aux objets comme exec-base, dosbase...

C'est déjà fini !

Voilà pour ma petite sélection d'utilitaires incontournables pour le développement en E. Ceci n'est qu'un échantillon et je ne prétends pas tous les connaître. Je vous invite à prendre contact avec moi pour me faire découvrir de nouveaux joyaux du DP. J'attends aussi vos suggestions d'articles plus ciblés étant donné qu'on commence globalement à avoir fait le tour du langage E, d'autant plus que le courrier se fait rare ces temps-ci. ;)


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]