Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DUMP


Information sur la source

Catégorie :Applications Linux Classé sous : dump, deboggeur, debug Niveau : Débutant Date de création : 12/12/2005 Date de mise à jour : 13/12/2005 20:21:47 Vu : 4 523

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Ce code enregistre dans /home/debug.txt un dump du fichier entré en argument à l'éxécution du programme.
c'est plus ou moins inutile,mais il y a un début à tout!
 

Source

  • #include <stdio.h>
  • /* pour compiler avec gcc: gcc dump.txt -o dump */
  • /////////////////////////////////////////////////
  • // dump de fichier pour linux //
  • // //
  • // commande:nom_executable nom_fichier d_entree//
  • /////////////////////////////////////////////////
  • int main(int argc,char* argv[])
  • {
  • int a=-16,i,b[16],c;
  • unsigned size=0;
  • FILE *fp,*fo;
  • fo=fopen("/home/debug.txt","w"); //ouverture du fichier pour enregistrer le dump
  • if ((fp=fopen(argv[argc-1],"r"))==NULL)
  • {
  • printf("Echec lors de l'ouverture du fichier \"%s\".\n",argv[argc-1]);
  • exit(1);
  • }
  • printf("Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
  • fprintf(fo,"Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
  • fprintf(fo,"\n---------------- Debug : ----------------\n\n");
  • puts("En cours ...");
  • do
  • {
  • fprintf(fo,"%08X\t",a+=16);
  • i=0;
  • while (i<16 && c!=EOF)
  • {
  • size++; //incrementation de la variable contenant la taille du fichier
  • c=fgetc(fp); //octet suivant du fichier
  • if (i==8) fprintf(fo," - ");
  • fprintf(fo,"%02X ",b[i]=c);
  • i++;
  • }
  • fprintf(fo,"\t");
  • for(i=0;i<16;i++)
  • {
  • if (isprint(b[i]))
  • fprintf(fo,"%c",b[i]);
  • else
  • fprintf(fo," ");
  • }
  • fprintf(fo,"\n");;
  • }while (c!=EOF);
  • fprintf(fo,"\nFin du fichier\nTaille du fichier:%d octets soit %f Ko.",size,(float) size/1024);
  • puts("Debug enregistré dans le fichier /home/debug.txt");
  • fclose(fp);
  • fclose(fo);
  • return 0;
  • }
#include <stdio.h>

/* pour compiler avec gcc: gcc dump.txt -o dump */

/////////////////////////////////////////////////
// dump de fichier pour linux                  //
//                                             //
// commande:nom_executable nom_fichier d_entree//
/////////////////////////////////////////////////

int main(int argc,char* argv[])
{
  int a=-16,i,b[16],c;
  unsigned size=0;
  FILE *fp,*fo;
  fo=fopen("/home/debug.txt","w");   //ouverture du fichier pour enregistrer le dump
  if ((fp=fopen(argv[argc-1],"r"))==NULL)
    {
      printf("Echec lors de l'ouverture du fichier \"%s\".\n",argv[argc-1]);
      exit(1);
    }
  printf("Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
  fprintf(fo,"Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
  fprintf(fo,"\n---------------- Debug : ----------------\n\n");
  puts("En cours ...");
 
  do
    {
      fprintf(fo,"%08X\t",a+=16);
      i=0;
      while (i<16 && c!=EOF)
	{
	  size++; //incrementation de la variable contenant la taille du fichier
	  c=fgetc(fp);   //octet suivant du fichier
	  if (i==8) fprintf(fo," -  ");
	  fprintf(fo,"%02X ",b[i]=c);
	  i++;
	}
      fprintf(fo,"\t");
      for(i=0;i<16;i++)
	{
	  if (isprint(b[i]))
	    fprintf(fo,"%c",b[i]);
	  else
	    fprintf(fo," ");
	}
      fprintf(fo,"\n");;
    }while (c!=EOF);

  fprintf(fo,"\nFin du fichier\nTaille du fichier:%d octets soit %f Ko.",size,(float) size/1024);
  puts("Debug enregistré dans le fichier /home/debug.txt");
  fclose(fp);
  fclose(fo);
  return 0;
}

Historique

13 décembre 2005 20:21:47 :
j'ai rectifié mon erreur en mettant un vrai commentaire dans la case commentaire ;)

Commentaires et avis

signaler à un administrateur
Commentaire de max12 le 13/12/2005 16:35:48 administrateur CS

La description ça sert à décrire le code et non à mettre du code !!! Faut rectifier ça

signaler à un administrateur
Commentaire de poulpixx le 13/12/2005 20:16:22

ouais je sais,jme suis planté.je vais rectifier ca.

signaler à un administrateur
Commentaire de max12 le 14/12/2005 01:06:43 administrateur CS

Merci :)

signaler à un administrateur
Commentaire de flamt le 09/01/2006 22:14:58

ton code m'intéresse mais tu penses que ca serai dur de l'adapter a windows?

signaler à un administrateur
Commentaire de poulpixx le 10/01/2006 20:16:33

non,pour l'adapter a windows il suffit de remplacer à la ligne 16 "/home/debug.txt" par "C:\\debug.txt" et de compiler. ton dump sera danc C:\debug.txt. n'oublie pas de mettre un argument à l'execution,ou si tu ne peux pas, a la ligne 17 tu remplace (fp=fopen(argv[argc-1],"r") par (fp=fopen("chemin_complet_du_fichier","r"). voila ;)

signaler à un administrateur
Commentaire de Mr.X le 27/10/2006 21:20:57

Euh pour dumper des fichier binaire c'est pas top...
vaudrait mieu remplacer "r" par "rb" sa sra tout de suite déjà mieu.
De plus le size en long serait une bonne chose aussi.
Un contrôle des arguments ne serait pas inutile, un simple
if(argc < 2)return 1;
suffirait.
Pour une meilleur lisibilité du code utiliser une variable szFileName serait bien mieu que argv[argc-1].
A et puis mettre dans le home c'est franchement pas terrible. Dejà c'est pas portable et un petit "./" suffirait ou encore :
strcpy(l_szLog, l_szInput);
char *buffer = l_szLog;
while(*buffer){
if(*buffer == '.')*buffer = 0;
buffer++;
}
strcat(l_szLog, "_dump.txt");

Voila c'est tout sinon ton code est intéressant =)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

VC++ et access [ par tafiscobar ] voila, je fais un petit programme qui prend des valeurs ds un base de données pour les inscrire ds un fichier , voici ce q j'ai fait pour ouvrir la ba VC++ et access [ par tafiscobar ] voila, je fais un petit programme qui prend des valeurs ds un base de données pour les inscrire ds un fichier , voici ce q j'ai fait pour ouvrir la ba Prob grave avec Visual... [ par Nuage ] Voila, j'ai un grave problème avec le debug de Visual. Je fait un bête code source, avec une fonction pour créer un élement d'une pile, et une fonctio si quelqu'un ne m'aide pas, je vais peter un plomb [ par sebos2013 ] Salut a tous,a chaque fois que j'essai de creer le .exe de mon prog, les erreurs suivantes apparaissent:Deleting intermediate files and output files f pb avec ADO [ par Frederyck ] Voilà g un pb, j'utilise dans mon appli une bdd Access 97 via ADO et donc g inclut la commande:#import "C:\Program Files\Fichiers communs\System\ado\m debug vs release [ par coockiesch ] Hello!J'aimerais savoir les différences entre la compilation release et la compilation debug...Quels sont leurs avantages et leurs inconvéniants.Merci Problème de compilation [ par lbs ] Bonsoir,J'ai téléchargé les sources d'eMule (version officielle et version lsd). Je compile le tout et ca me met le message d'erreur suivant :------ D debug avec visual c++ [ par sk8reno ] bonjour, je voudrais savoir comment debuguer avec visual c++. il me met un message d'erreur "devenv.exe introuvable" . merci d'avancereno Debug & Release [ par hilairenicolas ] Bonjour à tous,j'ai un probleme étrange. Je developpe un .ocx qui n'a pas le meme comportement quand je le compile en mode debug ou en mode release. E Fichier, Debug et Visual C++ 6.0 [ par Katian ] Simple:sous visual C++ 6.0=&gt;ifstream input;input.read(Carac, sizeof(Carac));&lt;=Le read me renvoie un caractere mais en debug il me dit que c'est


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.