Comment afficher un rapport d'erreur

Loynis94 Messages postés 2 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 7 janvier 2010 - 30 déc. 2009 à 11:25
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 7 janv. 2010 à 14:26
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
1 janv. 2010 à 20:05
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 !
0
Loynis94 Messages postés 2 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 7 janvier 2010
7 janv. 2010 à 10:59
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.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
7 janv. 2010 à 14:26
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;
}
0
Rejoignez-nous