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# Discussion :

Event log : erreur de mon appli mais ou chercher?


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut Event log : erreur de mon appli mais ou chercher?
    Bonjour

    Je developpe une DLL C# que je transmets à une application tiers qui s'occupe de la GUI et de l'acces a la DB.

    Malheureusement cette application plante sur un PC particulier en XP et jamais sur d'autre (W7 , autre XP)

    En regardant l'event viewer de ce PC et en correlant avec mes logs, il semble bien que l'application s'arrete mais je ne peux determiner si cela vient de ma DLL ou de l'appli qui s'en sert.

    L'event viewer me donne çà:
    Event Type: Error
    Event Source: .NET Runtime 2.0 Error Reporting
    Event Category: None
    Event ID: 5000
    Date: 25/02/2011
    Time: 4:12:25 PM
    User: N/A
    Computer: SPACECODE
    Description:
    EventType clr20r3, P1 rfidmanagment.exe, P2 1.0.0.2, P3 4d4845b8, P4 sdk_sc_rfidreader, P5 2.5.31.593, P6 4d46dcbe, P7 36, P8 46, P9 system.nullreferenceexception, P10 NIL.

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
    Data:
    0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
    0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
    0010: 20 00 72 00 66 00 69 00 .r.f.i.
    0018: 64 00 6d 00 61 00 6e 00 d.m.a.n.
    0020: 61 00 67 00 6d 00 65 00 a.g.m.e.
    0028: 6e 00 74 00 2e 00 65 00 n.t...e.
    0030: 78 00 65 00 2c 00 20 00 x.e.,. .
    0038: 31 00 2e 00 30 00 2e 00 1...0...
    0040: 30 00 2e 00 32 00 2c 00 0...2.,.
    0048: 20 00 34 00 64 00 34 00 .4.d.4.
    0050: 38 00 34 00 35 00 62 00 8.4.5.b.
    0058: 38 00 2c 00 20 00 73 00 8.,. .s.
    0060: 64 00 6b 00 5f 00 73 00 d.k._.s.
    0068: 63 00 5f 00 72 00 66 00 c._.r.f.
    0070: 69 00 64 00 72 00 65 00 i.d.r.e.
    0078: 61 00 64 00 65 00 72 00 a.d.e.r.
    0080: 2c 00 20 00 32 00 2e 00 ,. .2...
    0088: 35 00 2e 00 33 00 31 00 5...3.1.
    0090: 2e 00 35 00 39 00 33 00 ..5.9.3.
    0098: 2c 00 20 00 34 00 64 00 ,. .4.d.
    00a0: 34 00 36 00 64 00 63 00 4.6.d.c.
    00a8: 62 00 65 00 2c 00 20 00 b.e.,. .
    00b0: 33 00 36 00 2c 00 20 00 3.6.,. .
    00b8: 34 00 36 00 2c 00 20 00 4.6.,. .
    00c0: 73 00 79 00 73 00 74 00 s.y.s.t.
    00c8: 65 00 6d 00 2e 00 6e 00 e.m...n.
    00d0: 75 00 6c 00 6c 00 72 00 u.l.l.r.
    00d8: 65 00 66 00 65 00 72 00 e.f.e.r.
    00e0: 65 00 6e 00 63 00 65 00 e.n.c.e.
    00e8: 65 00 78 00 63 00 65 00 e.x.c.e.
    00f0: 70 00 74 00 69 00 6f 00 p.t.i.o.
    00f8: 6e 00 20 00 4e 00 49 00 n. .N.I.
    0100: 4c 00 0d 00 0a 00 L.....
    Comment utiliser ceci pout m'aider à trouver cette erreur?
    Pourquoi elle n'est pas presente sur tous les PC?
    comment debugger ce type d'erreur, surtout si je ne peux la reproduire?
    Ou trouver la definition des P1,P2,P3...

    Cordialement

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Difficile de dire d'où provient l'erreur avec ces infos.
    Premières choses à vérifier :
    - les frameworks 2.0, 3.0 et/ou 3.5 sont-ils installés ?
    - l'OS est-il à jour ?
    - As-tu essayé d'attacher un debuggueur à l'appli ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut
    bonjour

    Merci de ta reponse.

    Le frameworks installés sont 2.0, 3.0 et 3.5 client.
    L'os XP SP3 est à jour et je n'est pas de debugger attaché.

    J'ai essayé sur une machine semblable d'attache adplus au demarage mais cette manis me genere toutes le minute un fichier DMP de 265Mo et je n'arrive jamais a l'endroit d'ou peut arriver l'exception.

    Une autre piste?

    Cordialement

  4. #4
    Membre habitué Avatar de swif79
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    Je n'ai pas vraiment de piste à proposer mais si tu as la possibilité de modifier légèrement ton appli tu pourrais utiliser une gestion de log avec PostSharp (Framework AOP) qui te permettra je dirai à coup sûr de débusquer ton bug.
    C'est très simple à implémenter et rapide et tout simplement génial.
    Je te laisse parcourir ce tutoriel


    http://gaelfraiteur.developpez.com/a...butes/partie1/
    http://gaelfraiteur.developpez.com/a...butes/partie2/

    Voilà un petit exemple :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
        [Serializable]
        public sealed class TraceAttribute : OnMethodBoundaryAspect
        {
            private readonly string category; 
            public TraceAttribute(string cat) 
            {
                this.category = cat;
            }
     
            public string Category { get { return category; } } 
     
            public override void OnEntry(MethodExecutionEventArgs eventArgs)
            { 
                UseLog.WriteLog(String.Format("[{0}] : [Entering]   {1}.{2}\t\t[Arguments] : {3}",
                                        this.category,
                                        eventArgs.Method.DeclaringType.Name,
                                        eventArgs.Method.Name,
                                        GetStrArguments(eventArgs.GetReadOnlyArgumentArray())),
                                        UseLog.LogType.INFORMATION);
            }
     
     
            public override void OnException(MethodExecutionEventArgs eventArgs)
            {
                base.OnException(eventArgs);
                UseLog.WriteLog(String.Format("[{0}] : [Exception]   {1}.{2}\n \t{3} {4}\t\t[Arguments] : {5}",
                                        this.category,
                                        eventArgs.Method.DeclaringType.Name,
                                        eventArgs.Method.Name,
                                        eventArgs.Exception.ToString(),
                                        eventArgs.Exception.Message,
                                        GetStrArguments(eventArgs.GetReadOnlyArgumentArray())),
                                        UseLog.LogType.ERROR);
            }
     
            public override void OnSuccess(MethodExecutionEventArgs eventArgs)
            {
                base.OnSuccess(eventArgs);
                UseLog.WriteLog(String.Format("[{0}] : [Exit]   {1}.{2}\t\t[Arguments] : {3}",
                                        this.category,
                                        eventArgs.Method.DeclaringType.Name,
                                        eventArgs.Method.Name,
                                        GetStrArguments(eventArgs.GetReadOnlyArgumentArray())),
                                        UseLog.LogType.SUCCESS);
            }
     
            private string GetStrArguments(object[] args)
            {
                string strgArgs = "";
     
                if(args != null)
                    foreach (var arg in args)
                        if (arg != null)
                            strgArgs = ((strgArgs == "") ? arg.ToString() : ", " + arg.ToString());
     
                return strgArgs;
            }
        }
    Ensuite il ne te reste plus qu'à tagger les class que tu souhaites observer ou pour une gestion plus fine certaines méthodes.
    Au cas où tu te poserai la question les PostSharp.dll et PostSharp.Laos.dll sont gratuite et librement distribuable.

Discussions similaires

  1. Il y a une erreur dans mon programme, mais où ?
    Par BillGates62 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/05/2011, 22h44
  2. erreur dans mon appli EJB3 sous Jboss
    Par s-ehtp dans le forum Wildfly/JBoss
    Réponses: 6
    Dernier message: 02/03/2010, 15h48
  3. Réponses: 4
    Dernier message: 13/09/2006, 21h16
  4. Erreur windows lors du lancement de mon appli delphi
    Par socooooool dans le forum Delphi
    Réponses: 10
    Dernier message: 17/07/2006, 16h34
  5. Un erreur dans mon log page Internet ?
    Par BXDSPORT dans le forum Web & réseau
    Réponses: 2
    Dernier message: 04/05/2006, 17h52

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