Obligement - L'Amiga au maximum

Mercredi 24 avril 2024 - 17:58  

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

 


Test de MetaScope 1.5
(Article écrit par Cédric Beust et extrait d'Amiga News - mai 1993)


MetaScope est un nom qui doit sembler familier à ceux d'entre vous qui développaient sur Amiga alors que les environnements de développement étaient à cent lieues de ce qu'ils sont maintenant. Il a été le tout premier débogueur digne de ce nom et à cette époque, son utilisation maximale de l'interface Amiga lui conférait un caractère précurseur certain. Remis au goût du jour par INOVAtronics, distribué et traduit par la société Someware, voyons de plus près ce que cet ancêtre est devenu et surtout comment il se compare à son concurrent le plus immédiat : Monam.

Metascope Metascope

L'unique disquette de MetaScope est accompagnée d'un manuel d'une quarantaine de pages en français (mais le logiciel lui-même est en anglais). Le débogueur lui-même fait quatre-vingts kilo-octets. Il se charge simplement comme tout autre débogueur : en lui donnant en paramètres l'exécutable à déboguer suivi éventuellement d'autres arguments.

Il est fortement recommandé, dans la mesure où vous êtes l'auteur de cet exécutable, de lui avoir adjoint des symboles, ce qui vous simplifiera énormément la vie (possibilité d'utiliser le nom symbolique de fonctions et de variables).

A qui s'adresse MetaScope ?

Le marché est plutôt restreint dans la mesure où la plupart des "compilateurs" (je mets des guillemets parce que j'inclus les assembleurs dans cette catégorie) sont fournis avec leur propre débogueur (SAS/C et CPR, Devpac et Monam). Si vous développez avec des outils plus ésotériques ne disposant pas de débogueur (Asm68K, DICE, langage E ou encore Draco), MetaScope pourrait donc vous intéresser.

Les deux fenêtres principales

L'atout majeur de MetaScope, ainsi que je l'ai évoqué en introduction, est son usage intensif du système de fenêtrage de l'Amiga. Initialement, MetaScope ne vous proposera qu'une seule fenêtre : celle affichant les registres du processeur. Si vous cliquez sur le contenu d'un registre, celui-ci s'illumine. Un double-clic vous permettra d'en modifier la valeur. Cette méthode se généralise à toutes les fenêtres.

Metascope

La sélection simple permet, quant à elle, de ne pas avoir à taper certaines adresses. Ouvrons par exemple la fenêtre de code. Si aucune adresse n'est sélectionnée, vous devrez définir son adresse de départ à la main avec le gadget illustré par une flèche vers la droite (dans le coin inférieur droit de la fenêtre). Pour vous épargner cette opération fastidieuse, il vous suffit de sélectionner l'adresse (celle du PC semble appropriée) et de cliquer sur la flèche pour voir la fenêtre de code se positionner automatiquement à ladite adresse. Voilà pour les deux fenêtres principales.

Autres fenêtres

Les autres fenêtres que vous pouvez ouvrir sont les suivantes :
  • Memory : pour surveiller une zone mémoire, correspondant par exemple à une variable.
  • Break : pour avoir la liste des points d'arrêt (voir plus bas).
  • Hunk : liste des segments de l'exécutable.
  • Symbol : tous les symboles que votre "compilateur" a rendu accessibles (pratique pour désigner d'un clic une variable ou encore pour sauter directement à une fonction).
  • Frame : affiche l'empilement successif des fonctions ainsi que les adresses de retour.
Notez que vous pouvez ouvrir autant de fenêtres que la mémoire le permet. Vous pouvez également dupliquer des fenêtres existantes ou encore en geler le contenu (pour effectuer une comparaison après avoir exécuté une portion de code par exemple). Une fois que l'apparence vous plaît, vous pouvez sauvegarder votre configuration de fenêtre afin que celle-ci soit réutilisée au prochain appel de MetaScope.

Metascope

Comme tout débogueur digne de ce nom, MetaScope vous permet de positionner des points d'arrêt (breakpoints). Ils vous permettent d'exécuter votre code normalement et de demander à MetaScope de vous rendre le contrôle dès que celui-ci entre dans la section que vous désirez analyser. Pour chaque point d'arrêt, vous pouvez spécifier à partir de combien de passages le point d'arrêt sera activé ("arrête-toi au deuxième appel de le fonction x") ainsi qu'une expression conditionnelle ("arrête-toi dans la fonction y si le registre d0 égal $80").

Pour chaque fenêtre, MetaScope vous propose un large éventail d'affichages possibles. Vous pouvez par exemple demander un affichage des adresses absolu, relativement à un certain symbole (pratique pour afficher un tableau dans une fenêtre Memory par exemple). Vous pouvez aussi contraindre l'affichage de la fenêtre à une certaine zone mémoire (l'étendue d'une fonction). Les possibilités sont nombreuses.

L'intérêt de cette souplesse apparaît surtout lorsque vous utilisez les capacités de stockage des informations dans un journal ("logfile"). Celui-ci est en fait un moyen puissant d'obtenir des désassemblages sur fichier. Dans un premier temps, vous nommez ce journal (un nom de fichier AmigaDOS), vous l'ouvrez et à ce moment, vous pouvez sur simple demande ajouter à ce journal du code ou de la mémoire en spécifiant l'intervalle désiré. Si vous ajoutez à cette fonction la possibilité de définir des symboles (qui seront naturellement utilisés par MetaScope pour vous présenter le désassemblage), vous pouvez obtenir des listings extrêmement parlants (cette particularité devrait intéresser les désassembleurs de virus ou blocs d'amorce).

Bilan

Je terminerai cette description de MetaScope par une liste de ses avantages/inconvénients. N'accordez pas à ce genre de liste plus d'importance qu'elle n'en a. Selon que vous lirez les avantages ou les inconvénients en dernier, vous pourriez rester sur une impression qui sera forcément fausse de MetaScope. Il ne s'agit de rien de plus que d'impressions notées sur le papier au fur et à mesure qu'elles me venaient...

Inconvénients
  • Pas d'illustrations dans la documentation.
  • Pas de possibilité de placer des points d'arrêt en ROM (Cf. PowerVisor).
  • MetaScope ne traduira pas pour vous les fonctions de bibliothèques (remplacer un appel du genre JSR -$19E(A6) par JSR CloseLibrary, ce que font Monam et PowerVisor automatiquement).
  • Pas de port ARexx.
  • Pas de chargement de binaire autre qu'exécutable (MetaScope pourrait être utilisé comme éditeur de binaire).
  • Pas d'ouverture sur un écran autre que celui du Workbench.
  • Fenêtre de recherche puissante mais peu pratique (faire une recherche d'un texte sans distinguer majuscules et minuscules est loin d'être intuitif et requiert un peu de réflexion).
  • Pas d'utilisation de la fenêtre de requête ASL.
  • Impossibilité d'intercepter des processus détachés par le processus en cours de débogage.
  • Gestion très minimale d'Efforcer (MetaScope se contente de vous signaler le numéro de segment).
Avantages
  • Manuel en français.
  • Positionnement en mémoire par le biais d'expressions symboliques.
  • Définition de symboles.
  • Déplacement ligne à ligne intelligent (MetaScope fera défiler la fenêtre de façon à ce que la ligne de code suivante soit affichée).
  • Comprend mieux les symboles générés pas SAS/C que Monam (je ne sais pas ce qu'il en est pour DICE, pour qui MetaScope semble être parfaitement approprié).
  • MetaScope comprend des expressions parfois complexes comprenant des pointeurs.
  • Fonctions de désassemblages puissantes.
En conclusion

MetaScope vous est-il destiné ? Tout dépend de vos besoins. Si ceux-ci se limitent au débogage de programmes que vous avez développés, les fonctions qu'il offre couplées à l'interface vous suffiront sans aucun doute. Je pense tout particulièrement à son utilisation conjuguée avec DICE, qui jusqu'à maintenant ne possède toujours pas de débogueur source.

Si par contre, l'utilisation d'un débogueur est pour vous une chose quotidienne, que vous écrivez des démos, désassemblez des programmes ou éditez des binaires, Monam (ou le plus complexe PowerVisor, qui est le seul de ces trois débogueurs à ne pas être commercial), malgré son interface austère, comblera sans aucun doute vos désirs. Personnellement, j'ai été légèrement déçu par le peu de nouveautés introduites par cette nouvelle version. Il s'agit à mon avis plus d'une mise au goût du jour que d'une nouvelle version. Espérons qu'INOVAtronics, maintenant que son produit est stable, ne va pas en rester là et va lui ajouter toutes les fonctions complexes qui lui font encore défaut...

Nom : MetaScope 1.5.
Éditeur : INOVAtronics.
Genre : débogueur.
Date : 1992.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 625 FF.


[Retour en haut] / [Retour aux articles]