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 d'Adebug
(Article écrit par Kamel Biskri et extrait d'Amiga News - avril 1992)
|
|
Sur Amiga, les débogueurs dignes de ce nom ne sont pas nombreux. Adebug entre en scène après une version sur Atari ST.
Il est dès lors, avec Monam du lot Devpac, le seul débogueur symbolique susceptible de vous aider dans la
recherche et donc la correction de bogues.
Adebug est un outil visant surtout à aider le travail des programmeurs en assembleur, bien qu'étant capable de tracer
n'importe quel exécutable. Nous n'essayerons pas de décrire ici toutes ses possibilités, seulement les particularités
qui le rendent différent, notamment les "plus" par rapport à Monam.
Premier contact
La documentation sous forme de classeur est joliment présentée et bien fournie (145 pages en français).
Elle est bien agencée et permet une recherche rapide de renseignements. En plus des fonctions
commentées, le débutant se verra expliquer le matériel et les fonctions du 68000...
en fait tout ce qu'il faut savoir pour profiter au maximum d'Adebug.
Affichage départ
La disquette, quant à elle, contient le programme (en version française et anglaise) ainsi que
les données nécessaires au fonctionnement du tout. Ces fichiers seront à recopier dans votre
disquette système voire disque dur.
Après chargement
Ici, pas de fenêtres Intuition pour un affichage plus rapide et une gestion interne plus
performante. A part cela, Adebug ressemble fortement à Monam. Les utilisateurs de celui-ci ne
seront pas dépaysés car l'aspect est le même et les touches identiques avec toutefois des suppléments.
Exemple de configuration
Les "plus" d'Adebug
Tout d'abord, il faut savoir qu'à l'opposé de Monam, les fenêtres d'Adebug peuvent être de tous types.
Par exemple vous pouvez disposer de deux fenêtres de désassemblage, ce qui est fort utile car ainsi
vous pouvez utiliser la fonction "Watch" qui vous permet, lorsque vous tracez une instruction BSR
ou JSR, de visualiser la routine dans l'autre fenêtre et ainsi décider de tracer ou d'exécuter.
Vous avez un accès direct au bit du registre SR modifiable sur pression d'une touche ainsi que
la possibilité d'inhiber ou non les minuteurs du CIA A et B.
Exemple de label
Adebug est un débogueur symbolique, ce qui vous permet de tracer avec des labels à la place
d'adresses. Par exemple "jsr $30000" par "jsr scroll", mais cela n'est pas tout. Adebug dispose
de variables et notamment des "offset system" ainsi que ceux de ARP. Un "MOVE #$FFF,$DFF180"
deviendra "MOVE #$FFF,COLOR00". Vous pouvez créer les variables que vous utilisez couramment
et les sauver (REQ.Lib par exemple).
Adebug permet également de rajouter des routines, afin de personnaliser le débogueur.
Les routines supplémentaires seront appelées par leur nom. Un exemple est fourni sur disquette
(vous pouvez nous envoyer vos routines, par exemple ajout de gestion de lecture/écriture de secteurs).
Un plus encore : vous pouvez faire un "dir" si vous êtes perdu dans vos disquettes. Vous pouvez
reloger Adebug ainsi que sa Copper et son écran si ceux-ci empiètent vos données lors d'utilisation
non-système (pas alloc mem, traçage d'une démo qui décompacte à un endroit absolu).
Vous pouvez choisir la Copper, ainsi en mode trace. L'appui d'une touche permet de visualiser le
travail fait sur l'écran. Pour ma part, j'étais sous Adebug puis je suis passé sur mon écran et
j'ai contrôlé mon pointeur souris, tout ceci en superviseur sans système donc et sous interruption.
Ça marche ! Qui peut en dire autant ? Au traçage d'une routine douteuse vous pouvez empiler les
registres, l'exécuter et rendre le contexte pour éviter un conflit entre deux routines.
Informations système
Une option pour les bidouilleurs permet de mettre en code source la mémoire pour récupérer une
éventuelle routine. Le débogage par Minitel ou à l'aide d'un terminal est possible, mais il est
conseillé de posséder un Minitel 2 (rapidité oblige !).
Option impressionnante : on trace la ROM comme de la vulgaire RAM avec point d'arrêt, et ceci
avec labels (Cf. exemples de labels). Il est possible de modifier l'état des interruptions ainsi
que le registre Intena ($dff09a) ce qui s'avère nécessaire lors du traçage de routines d'interruptions
(exemple : Intena $C020 correspond dans Adebug à $20).
Adebug peut également être lancé par un "RUN Adebugf' et être utilisé comme débogueur résident.
Il apparaîtra dès qu'une tâche plante, ou par une combinaison de touches sélectionnées par
l'utilisateur, pour tracer la tâche "Ready".
Liste des tâches
Lorsque vous tracez, une flèche indique la direction que va prendre l'instruction actuelle.
Elle indique donc le sens de votre code (flux). En avant, en arrière ou sur la même ligne si
le code n'est pas une instruction de changement de flux.
Adebug permet la création de macros (ceci permet d'éviter le travail répétitif).
Adebug gère la NMI (interruption non masquable niveau 7), ce qui permet de cliquer le programme
lors de son exécution, ceci n'importe quand, même et surtout lorsque le système n'est plus en
mode multitâche. On se retrouve sous Adebug avec le contexte (pc, sr, registres...).
Vous pouvez intervenir lors d'un mauvais déroulement de programme n'entraînant pas d'erreurs
d'exceptions (si une erreur interne $1F survient, c'est que vous avez cliqué Adebug).
Les "moins" d'Adebug
Le programme principal est énorme : 104 ko (Monam fait moins de 30 ko). On note
aussi l'absence de requête de fichiers ce qui alourdit l'usage si votre programme se
trouve au fin fond du disque dur.
Toutes les fonctions utilisent les touches, absence de menus ou de gadgets, ce qui demande
un effort d'apprentissage assez long au début sauf pour les utilisateurs de Monam.
En outre, Adebug est seulement un débogueur ce qui demande un assemblage préalable suivi
d'une sauvegarde. Chargez enfin le programme à déboguer (ce travail est plus aisé avec Devpac
qui forme un tout). On passe ainsi de l'éditeur au débogueur Monam très vite ce qui fait gagner
du temps.
Liste des symboles
Enfin, Adebug utilise le DOS, donc pas de sauvegarde quand cette structure est endommagée
(des routines compatibles DOS existent en DP dans certains moniteurs comme BeerMonitor,
à vous de les rajouter).
Remarque : des problèmes avec Adebug ont été rencontrés lors de l'utilisation de celui-ci sur
un Amiga étendu à 2 Mo à la place de l'extension A501 et sur un A1000 avec une carte Spirit
équipée de 1,5 Mo. Il s'agit d'un bogue qui sera corrigé rapidement par l'auteur
(il peut être contourné en mettant SSP à une adresse <=$C80000).
Conclusion
Adebug est un très bon débogueur qui ira aussi bien au développeur qu'à l'apprenti
programmeur, voire au bidouilleur malade. Il manque quelques fonctions mais on peut
les ajouter soi-même et ainsi obtenir son débogueur personnalisé selon les besoins
et les spécificités de chacun.
Adebug marche sur A500+ (cela n'est pas indiqué sur la documentation). La version actuelle
ne fonctionne que sur 68000. Une version 68030 est attendue.
Nom : Adebug.
Développeurs : Arobace Éditions.
Genre : débogueur.
Date : 1991.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 590 FF.
|
Soutenez le travail de l'auteur
|
|
|