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

Qt Discussion :

Core dump Qstring


Sujet :

Qt

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Core dump Qstring
    Bonjour,

    Nous sommes développeurs mais ne connaissons pas Qt. Nous avons remis à jour un logiciel de Devis/BL/Facturation -kinvoice- pour les petites entreprises et autoentrepreneurs.

    Après les premiers tests, il nous reste un soucis que nous ne savons résoudre: la création d'un article ou d'une famille génère un core dump lorsque l'on valide cette création. La création d'un client ou d'une facture ne pose pas de problème.

    Voici le résultat d'un <gdb kinvoice_ae core> Les paquets 64 bits ont été générés sur une Debian SID, les 32 bits sur une Ubuntu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Program received signal SIGSEGV, Segmentation fault.
    0x00007ffff797d120 in QString::QString(QString const&) () from /usr/lib/libqt-mt.so.3
    Si une personne pouvait se pencher sur la question et nous guider pour règler ce problème ce serait superbe. Les sources et binaires compilés sont téléchargeables à partir de http://www.tootai.net/downloads/kinvoice-0.2.tar.gz

    En gros, de ce qui a été assimilé, art.h est généré à partir de art.ui qui est un xml (ou du genre). Il y a aussi art.ui.h qui contient:

    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
    /**************************************************
    ** ui.h extension file, included from the uic-generated form implementation.
    **
    ** If you wish to add, delete or rename functions or slots use
    ** Qt Designer which will update this file, preserving your code. Create an
    ** init() function in place of a constructor, and a destroy() function in
    ** place of a destructor.
    **************************************************/
     
    #include "data.h"
    #include <qcombobox.h>
    #include <qvalidator.h>
     
    void Art::init() {
        for (uint i = 0; i < Cats.count(); ++i)
            ArtCat->insertItem( Cats.at(i)->name );
     
        ArtPuht->setValidator( new QDoubleValidator(0.0, 9999999.0, 2, ArtPuht) );
        ArtStock->setValidator(new QIntValidator(1, 9999999, ArtStock));
        ArtVendu->setValidator(new QIntValidator(1, 9999999, ArtVendu));
     
    }
    Voici data.h

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    #include <qstring.h>
    #include <qptrlist.h>
    #include <qdatetime.h>
     
    #ifndef __DATA_H__
    #define __DATA_H__
     
    class hArt {
        public: 
        QString ref;
        QString desc;
        float puht;  
        uint stock;  
        uint vendu;  
        hArt() : puht(0.0), stock(0), vendu(0) {};
        hArt(QString r, QString d, QString p, QString s, QString v) {
            ref=r;                                                   
            desc=d;                                                  
            puht=p.toFloat();                                        
            stock=s.toUInt();                                        
            vendu=v.toUInt();                                        
        };                                                           
        ~hArt() {};                                                  
    };                                                               
     
    class hCat {
        public: 
        QString name;
        QString desc;
        QPtrList<hArt> articles;
        hCat() {};              
        hCat(QString n, QString d) : name(n), desc(d) {};
        ~hCat() { articles.clear(); };                   
    };                                                   
     
    class hAchat {
        public:   
        QString ref;
        QString desc;
        uint quantite;
        float puht;   
        float pht;    
        int remise;   
        hAchat() : quantite(0), puht(0.0), pht(0.0), remise(0) {};
        ~hAchat() {};                                             
    };                                                            
     
    class hFacture {
        public:     
        QDate date; 
        QString ref;
        QString intitule;
        QString client;  
        QPtrList<hAchat> achats;
     
        int paiement;           
        enum typePaiement {     
            ESPECE,             
            CHEQUE,             
            CB,                 
            AUTRE               
        };                      
     
        QString comment;        
        float sumHT;            
        float tva;              
        float sumTVA;
        float sumTTC;
        hFacture() :
                sumHT(0.0),tva(0.0),sumTVA(0.0),sumTTC(0.0) {
            date = QDate::currentDate ();
        };
        ~hFacture() {};
    };
     
     
    class hClient {
        public:
        enum clientTypeInfo {
            NOM=0,
            ADRESSE,
            CP,
            VILLE,
            PAYS,
            TEL,
            FAX,
            MOBILE,
            EMAIL,
            SITE,
            COMMENTAIRE,
            MAX_INFO
        };
     
        QString info[ MAX_INFO ];
     
        // pour clientResult in Facture
        int finded;
     
        hClient() : finded(0) {};
        ~hClient() {};
    };
     
     
    extern QPtrList<hCat>   Cats;
    extern QPtrList<hClient>        Clients;
    Le reste semble être des includes de Qt3, je ne pense donc pas que le soucis se situe à ce niveau.

    Merci d'avance pour toute aide, le but n'est pas loin ;-)

    --
    Daniel

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Resolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (debutant) Core Dumped ?
    Par pouic06 dans le forum Débuter
    Réponses: 8
    Dernier message: 09/11/2008, 13h01
  2. Réponses: 1
    Dernier message: 10/12/2006, 21h37
  3. Comment générer un core dump en c
    Par gege2061 dans le forum Linux
    Réponses: 3
    Dernier message: 12/11/2006, 15h33
  4. Problème de Core Dumped !
    Par KneXtasY dans le forum C
    Réponses: 8
    Dernier message: 24/12/2005, 13h11
  5. Segmentation fault (core dumped)
    Par Battosaiii dans le forum C
    Réponses: 13
    Dernier message: 25/11/2005, 18h36

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