Suivez-nous sur X
|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
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.
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.
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.
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.
|
|