Obligement - L'Amiga au maximum

Vendredi 17 mai 2024 - 11:49  

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

 


En pratique : Utiliser la (d)debug.lib avec GCC
(Article écrit par Stéphane Saragaglia et extrait de GuruMed.net - mai 2001, mis à jour en décembre 2003)


A quoi ça sert ?

Il existe des cas où il n'est pas possible d'utiliser les fonctions d'entrées/sorties classiques telle printf() :
  • dispatcher BOOPSI.
  • Task (en opposition avec les processus "Process").
  • ...
Une bibliothèque permet, grâce à des fonctions dédiées, d'envoyer des données vers le port série ou de recevoir des données depuis le port série : la debug.lib. Ceci dans l'optique de communiquer par exemple avec un terminal déporté, ou alors d'intercepter en local ces informations et de les afficher dans une console grâce à des outils spécifiques (voir le paragraphe "Outils permettant d'intercepter les sorties série").

Note : les processus sont des "tasks" améliorées pour gérer notamment l'environnement DOS (entrées/sorties). Voir la structure Process du fichier d'en-tête dos/dosextens.h).

Comment on s'en sert ?

En fait, il existe deux bibliothèques :
  • La debug.lib utilise le port série (voir le paragraphe "Outils permettant d'intercepter les sorties série").
  • La ddebug.lib utilise le port parallèle (utile lorsque l'on débogue une application utilisant le port série).
La plus célèbre fonction en est "KPrintF()", l'équivalent d'un "printf()". Le prototype se trouve dans le fichier d'en-tête "clib/(d)debug_protos.h" qui doit être ajouté au fichier C utilisant une des fonctions de la bibliothèque. Ajouter la bibliothèque qui va bien lors de l'édition des liens ("gcc ... -ldebug ...").

Ou est-ce qu'on trouve la debug.lib ?

Sur le CD Amiga Developer bien sûr :
  • ADCD_2.1:NDK/NDK_3.5/Include/linker_libs/debug.lib
  • ADCD_2.1:NDK/NDK_3.1/Includes&Libs;/linker_libs/debug.lib
Le problème est que si ces bibliothèques s'utilisent telles quelles avec SAS/C, StormC et vbcc, cela n'est pas possible pour GCC car le format des bibliothèques est différent.

Donc pour pouvoir utiliser cette bibliothèque avec GCC, il faut réaliser les pirouettes suivantes :
Quels sont les outils permettant d'intercepter les sorties série ?

Les outils les plus connus permettant d'intercepter les sorties de débogage sur port série sont Sashimi et Sushi. Pour ma part, j'utilise Sashimi que l'on peut trouver dans le CD Amiga Developer (ADCD_2.1:Contributions/Olaf_Barthel/Tools/Debugging/Sashimi) ou sur Aminet (Sashimi et Sushi.lha).

Je n'ai utilisé Sashimi que de manière simple, via la commande :

sashimi CONSOLE BUFK=64 NOPROMPT ASKEXIT ASKSAVE

Y a-t-il des conseils particuliers ?

Attention à bien respecter les formats de conversion des commandes "KPrintF()" et autres (type "printf()") : %d, %ld, ... Caster si besoin est.

De plus, afficher des messages via la debug.lib ralentit notoirement votre application, tenez en compte.


[Retour en haut] / [Retour aux articles] [Article suivant]