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

Python Discussion :

Débugger une erreur silencieuse


Sujet :

Python

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut Débugger une erreur silencieuse
    Bonjour,

    J'ai une application dev en Python3.4 avec PyQt5. Cette application communique avec un appareil embarqué (envois et réception de trame).

    J'ai une méthode (Exécutée depuis un QThread) qui récupère des événements stockés dans l'appareil ( Je peu en récupérer 5 comme 600, ça dépend).
    Cette methode fonctionne bien en mode "release". Mais à un comportement bizarre quand je lance le mode debug depuis PyCharm. Si je n'ai pas de breakpoint, ça fonctionne, mais si je met un breakpoint ça crash au moment du breakpoint. Aucune exception n'est lancé (En tout cas je les attrapes pas) et le programme fini avec l'exit code 0.

    J'ai un bouton recommencer pour lancer cette méthode. Si en mode release, je recommence encore et encore, au bout d'un certain moment, ça va crasher aussi avec le même comportement (exit code 0)

    Le moment du crash et le nombre maximum de "recommencer" n'est pas tous le temps le même, ça a l'air de dépendre de la volumétrie de donnée à traiter. Si j'ai beaucoup de données, même en mode release, il peu ne pas terminer la fonction.

    Ce comportement me fait penser à un probleme de mémoire mais je n'attrape aucune exception, j'ai regardé tous les try:except: , je re-raise toute les exceptions, j'ai aussi essayé d'ajouter ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def on_exception_triggered(type_except, value, tb):
        import traceback
        trace = "".join(traceback.format_exception(type_except, value, tb))
        print("ERROR HOOKED : ", trace)
        sys.__excepthook__(type_except, value, tb)
     
    sys.excepthook = on_exception_triggered
    rien du tout. Avez vous une piste ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par IPreferCSharp Voir le message
    rien du tout. Avez vous une piste ?
    Si votre code utilise des bibliothèques externes "wrappées" pour être utilisables par le programmeur Python, çà ne remontera que les erreurs "documentées". Pour les autres, le code C peut très bien faire un exit(0) sans remonter quoi que ce soit à l'interpréteur Python.
    Pour le reste, c'est "business as usual": savoir reproduire rapidement le problème, ré-écrire le code pour délimiter quel composant est en cause, utiliser des outils systèmes pour tracer les allocations mémoire,...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. gestion d'une erreur
    Par Jeannotc dans le forum Bases de données
    Réponses: 8
    Dernier message: 25/06/2004, 18h04
  2. C++Builder fait une erreur de calcul
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2004, 22h27
  3. [VB6] Source D'une erreur
    Par krest dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/07/2003, 17h33
  4. [procédure PG] Une erreur mystérieuse...ou pas
    Par doohan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/07/2003, 17h16
  5. Ne pas formater une erreur
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/03/2003, 14h13

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