Routines d’aide au débuggage pour la gestion de la mémoire vive en C


Problèmes que tentent de couvrir ces routines

Généralement, lorsque nous programmons en C en utilisant les routines normales de gestion de la mémoire, il arrive que nous demandions moins de mémoire que notre programme a besoin.

En fonction des OS le comportement de notre programme peut être différent, sous UNIX notre programme se termine souvent avec le message " ….. core dumped …. ". Bien que des débuggueurs tels que gdb, sdb,… permettent généralement de trouver d'où vient le problème, l'emploi de ces débuggueurs par des néophytes n'est pas toujours facile. Sur des systèmes comme DOS de telles erreurs se traduisent par un " plantage " plus ou moins sévère de la machine (DOS est un système sur lequel on peut tout faire : il n'y a rien et il faut faire le reste (merci JLC J ).Ce plantage pourra même avoir lieu plus tard dans le programme, lorsqu'on utilisera un morceau de la mémoire qui a été cassé.

Quelque fois lorsque l'on est moins chanceux ( ?), le programme semble fonctionner correctement avec quelque fois des surprises (AAAAAfficage intempestifssss et oui ce document est réalisé avec un TTt de textes pas fini).

Attention

La combinaison de sources utilisant GestMem.h avec des sources ne l'utilisant pas et faisant de l'allocation dynamique de mémoire peut avoir des conséquences désastreuses sur le programme car les pointeurs manipulés par l'utilisateur n'ont plus rien à voir avec les pointeurs fournis par les fonctions *alloc de la librairie standard.

Cette méthode est gourmande en mémoire, puisque pour chaque allocation de l'utilisateur, ces routines ajoutent des octets a allouer.

Routines d’aide au débuggage pour la gestion de la mémoire vive en C