L'utilisation conjointe du debugger symbolique Gdb et du programme d'enregistrement des valeurs des paramètres transmis à un CGI, "capture.cgi", peut vous aider pour trouver les erreurs de programmation.
Le debugger symbolique gdb est un utilitaire Unix permettant de contrôler le déroulement de programmes C, Pascal ou Fortran,... Il permet de mettre des points d'arrêt dans un programme, de visualiser l'état de ses variables ou de sa pile d'exécution, de calculer des expressions, de donner des valeurs à des variables, etc
Xxgdb est l'interface graphique qui facilite l'utilisation de gdb sous Xwindow.
Pour trouver les erreurs, on procède de la façon suivante et dans l'ordre.
1) Saisie des paramètres: modification de la page html
Le programme "capture.cgi" lancé à partir d'une page html (à la place du cgi contenant des erreurs) permet d'enregistrer dans le fichier "capcgi.dat" la valeur des paramètres qui sont transmis au cgi.
2) Lecture des paramètres: modification du cgi
Pendant le debogage, les valeurs des variables ne seront pas transmises par le client au serveur http, mais elles doivent être lues dans le fichier "capcgi.dat" qui a été créé précédemment. Pour cela, on écrit au début du programme:
et au début de la fonction cgiMain(), après les déclarations mais avant tout autre appel à des fonctions de lecture des paramètres:
Attention ne pas oublier de remettre DEBUG à 0 quand on n'est
plus en phase de debogage.
3) Compilation des programmes Les programmes C doivent être compilés avec l'option -g
pour pouvoir être débogés à l'aide de gdb. Si
l'on utilise un Makefile, il faut que la valeur de la variable CFLAGS contienne
(au moins) l'option "-g". Exemple:
4) Lancement de xxgdb Pour lancer xxgdb, taper: dans une fenêtre xterm ou shelltool. Après quelques secondes nécessaires à l'initialisation
de gdb et à la lecture des fichiers à debugger, gdb entre
en mode commande et attend les instructions de l'utilisateur. On voit apparaître
une fenêtre comprenant 3 zones de texte:
Ensuite, lancer l'exécution du programme en cliquant sur run
Pour un mode d'emploi complet de xxgdb, vous pouvez consulter la page.
Le fichier qui
s'affiche dans la fenêtre source est le fichier contenant la fonction
main.
Dans ce cas précis, c'est le fichier "cgicenst.c" qui contient lui-même
un appel à la fonction cgiMain vous avez écrite par dans votre
programme. Ce fichier n'étant pas dans votre répertoire,
il se peut que rien ne s'affiche dans la fenêtre source et alors un
message apparait dans la fenêtre de commande (don't hurry) :
Pour afficher votre programme, cliquer sur le menu File et sélectionner
votre fichier.
Gdb exécute alors le programme comme s'il avait été
lancé normalement. L'exécution se poursuit jusqu'à
la fin du programme sauf si il y a des points d'arrêt