Comment afficher un rapport d'erreur

Signaler
Messages postés
2
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
7 janvier 2010
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

Je viens de creer une application avec la librairie SDL.
Seulement, dès que j'essaye d'acceder aux données d'un tableau à 2 dimensions, le programme quitte comme si je lui indiquait un return 0.
Existe t-il un moyen de journaliser toutes les operations afin de voir pourkoi il quitte ?

merci à vous.

3 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Tu as message de violation d'accès quand même ?

Tu peux faire du fprintf dans un fichier de log...

Mais utiliser un débogueur (Mise en place de point d'arrêt, pas à pas...) serait plus efficace !
Messages postés
2
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
7 janvier 2010

Désolé de la réponse tardive.

Alors justement, je n'est aucun message d'erreur lol. rien. nichts. nada.

Et poux tu m'expliquer le fprintf dont tu parles plus precisement stp.



Merci encore.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Bin voilà plus ou moins comment t'en servir (Pour plus d'info, voir le lien de mon premier message).

L'idée est de dire en permanence ce que tu es en train de faire. Quand ton prog plantera, tu regardera la dernière ligne de log et tu saura que le plantage a eu lieu après celle-ci mais avant la suivante. Partant de là tu peux ajouter des logs entre ces lignes pour isoler le problème.

J'ai mis un fflush après chaque printf pour être sûr que les données sont bien écrites sur le disque juste après le printf.

#include <stdio.h>
#include <time.h>

FILE* lpFile;

void Log(char* lpInfo)
{
  fprintf(lpFile, "%06d : %s\n", (int)clock(), lpInfo);
  fflush(lpFile);
}

int main ()
{
   char lpMsg[200];
   int nA, nI;

   lpFile = fopen("log.txt","w+");

   Log("Avant boucle 1.");
   for (nI = 0; nI < 10; nI++)
     nA = 12;
   Log("Fin boucle 1.");

   Log("Calcul de rien.");
   nA = 12 * 3;
   sprintf(lpMsg,  "Résultat : %d.", nA);
   Log(lpMsg);

   fclose (lpFile);

   return 0;
}