Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 17:18  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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]