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

Langage Delphi Discussion :

Débogage : Aller plus loin que MadExcept ?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 109
    Points : 88
    Points
    88
    Par défaut Débogage : Aller plus loin que MadExcept ?
    Bonjour à tous

    un client a des plantages réguliers avec mon logiciel, à l'ouverture des fichiers.

    Teamviewer...Session distante...je prends la main...il me montre...je ne comprends pas le bug...aléatoire...aucune logique claire...

    donc je lui mets un EXE avec MadExcept, en espérant des rapports qui m'aident :

    main thread ($5b48):
    00405ca5 +03d WinRelais.exe System 1973 +30 SysGetMem ======> le plantage est ici
    00407190 +004 WinRelais.exe System 4758 +20 @GetMem
    0040b806 +00e WinRelais.exe System 24650 +10 @NewUnicodeString
    0040ba37 +00b WinRelais.exe System 25328 +12 @UStrFromPWCharLen
    00534648 +088 WinRelais.exe System.Classes 6738 +14 TStrings.SetTextStr
    0053415b +0b7 WinRelais.exe System.Classes 6593 +8 TStrings.LoadFromStream
    0053409b +00f WinRelais.exe System.Classes 6578 +1 TStrings.LoadFromStream
    0053400b +02f WinRelais.exe System.Classes 6558 +3 TStrings.LoadFromFile
    0114ac11 +055 WinRelais.exe u_WinRelais05 4425 +3 TSchema.LireFichier
    01598e02 +042 WinRelais.exe Child1 2580 +4 TChild.LireFichier ======> le fichier est lu ici : OK

    Bon OK, sauf que chez moi, pas de plantage , donc que puis-je en déduire ?

    + petite question :

    00405ca5 +03d WinRelais.exe System 1973 +30 SysGetMem

    ==> 1973 = numéro de ligne dans Delphi, ok, mais +30, c'est quoi ?

    Sinon, autre piste pour déboguer ce genre de problème ? Chez client ça plante tellement qu'il utilise une ancienne version !

    merci par avance,
    PASCAL

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 6 996
    Points
    6 996
    Par défaut
    Avec un try-except sur le code qui plante, il n'y a pas d'erreur capturée ?
    Ou juste une violation d'accès ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    a priori d'après tes dires il semble que ce soit l'allocation mémoire qui plante
    Le pc est il assez puissant en ressource pour pouvoir traité les éléments

    quand tu dis qu'avec l'ancienne version cela fonctionne ... qu'elle sont les différences entre les deux version ?

    je me souvient d'un bug aléatoire créer par un dépassement de limite d'un tableau dynamique
    regarde tes options de débogage
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 109
    Points : 88
    Points
    88
    Par défaut
    Bonjour

    "Le pc est il assez puissant en ressource pour pouvoir traité les éléments"
    ===> justement, je le soupçonne, mais comment vérifier [ techniquement parlant ] ce point ??

    "quand tu dis qu'avec l'ancienne version cela fonctionne ... qu'elle sont les différences entre les deux version ? "
    ====> 4 ans entre les 2 versions, une nouvelle version de Delphi, et 1.2 millions de ligne de code...donc piste impossible à explorer.

    " Avec un try-except sur le code qui plante, il n'y a pas d'erreur capturée ?"
    ==> ?? ça plante dans la VCL, je ne me vois pas modifier ce code, et une erreur capturée dans un try-except me donnerait plus d'informations ?

    Merci pour vos conseils
    Pascal

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 700
    Points : 5 309
    Points
    5 309
    Par défaut
    Citation Envoyé par pascal07 Voir le message
    ça plante dans la VCL, je ne me vois pas modifier ce code, et une erreur capturée dans un try-except me donnerait plus d'informations ?
    Une exception contient un peu plus qu'un simple message.
    Parmi les choses utiles en plus du message :
    - Son type
    - Son contexte
    - Sa pile d'exécution

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/04/2014, 14h44
  2. Aller plus loin avec la sérialisation XML
    Par tomlev dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 04/10/2009, 17h53
  3. aller plus loin
    Par vinc-mai dans le forum Ruby
    Réponses: 11
    Dernier message: 25/02/2008, 10h11

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