IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Convertir un offset en numero de ligne


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par d�faut Convertir un offset en numero de ligne
    Bonjour,

    J'ai �crit un programme avec C++Builder.
    Il fonctionne correctement sur mes PC (� la maison et au boulot), mais il plante sur le PC de mes parents (et comme ils habitent loin, je ne peux pas d�boguer sur place).

    Au moment du plantage, Windows affiche le message suivant : AppName:test.exe AppVer:0.0.0.0 ModName:test.exe ModVer:0.0.0.0 Offset:0003526C

    Y a t-il un moyen pour savoir quelle fichier source et n� de ligne correspond � l'offset 3526C ?

    Merci pour votre aide
    Alain

  2. #2
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut
    Ca me semble difficile... peut-�tre en regardant chez toi, dans le debugger CPU � quoi correspond l'op�ration � cet offset.

    Sinon, tu peux int�grer des informations de debug dans ton programme qui sortent dans un fichier log et demander � tes parents de t'envoyer le log. Comme �a tu pourras voir o� le programme s'est arr�t�:

    Pour d�tourner le stream cerr dans un fichier log, tu peux changer le cpp d'entr�e du programme comme suit:
    1) Ajouter les includes suivants
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include <fstream>
    #include <iostream>
    2) D�tourner le stream avant l'execution du stream cerr dans le fichier "debug.log" (les deux section "Manage debug" et le try ... finally)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
      //------------------ Manage debug ----------------------
      // Deviate the cerr stream in a debug file
      ofstream debug("debug.log");
      basic_streambuf<char,std::char_traits<char> > *cerrbuf=cerr.rdbuf();
      if ( debug ) cerr.rdbuf(debug.rdbuf());
     
      try {
     
        try
        {
          Application->Initialize();
          SetApplicationMainFormOnTaskBar(Application, true);
          Application->CreateForm(__classid(TForm6), &Form6);
      Application->Run();
        }
        catch (Exception &exception)
        {
          Application->ShowException(&exception);
        }
        catch (...)
        {
          try
          {
            throw Exception("");
          }
          catch (Exception &exception)
          {
            Application->ShowException(&exception);
          }
        }
      }
      __finally {
     
        //------------------ Manage debug ----------------------
        // Cancel the deviation of the cerr stream
        if (debug) {
          cerr.rdbuf(cerrbuf);
          debug.close();
        }
     
      }
     
      return 0;
     
    }
    Ensuite tu peux sortir du texte dans ton code avec le code suivant:
    Attention � bien mettre le "endl" pour forcer l'�criture du texte dans le fichier (ou un "flush"), sinon tu risques d'avoir tu texte qui est dans un buffer non sauvegard� au moment o� l'application plante...

    J'esp�re que cela t'aidera

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 45
    Par d�faut
    Merci Patrick pour tous ces conseils.

    J'avais esp�r� d�termin� directement le num�ro de ligne source, mais �a ne semble pas possible. Je vais donc installer des mouchards et des fichiers de log comme tu le proposes.

Discussions similaires

  1. [VBA-E] Récupérer le numéro de ligne où se trouve un bouton
    Par Freiya dans le forum Macros et VBA Excel
    R�ponses: 10
    Dernier message: 28/01/2011, 23h06
  2. [VB.Net] Repeater numero de ligne et data
    Par NicoNGRI dans le forum ASP.NET
    R�ponses: 6
    Dernier message: 10/10/2005, 10h20
  3. R�cuperer le numero de ligne dans un RichEdit
    Par nbutin dans le forum C++Builder
    R�ponses: 9
    Dernier message: 25/05/2005, 12h40
  4. Recuperer le numero de ligne d'une exception Python
    Par chrdou dans le forum G�n�ral Python
    R�ponses: 4
    Dernier message: 28/02/2005, 16h58
  5. R�ponses: 2
    Dernier message: 19/05/2004, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo