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

GTK+ avec C & C++ Discussion :

Différence de comportement Win/Linux


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut Différence de comportement Win/Linux
    Bonjour à tous et à toutes,

    j'ai développé un programme en C/fortran90/GTK+,
    sous Windows et Linux en utilisant Code::Blocks, et les
    compilateurs GNU (MinGW pour win32).
    Tout fonctionne très bien sauf que sous win32 j'ai
    un bug énervant.
    J'ai une erreur lors d'un 'gtk_widget_destroy' tout du moins je
    suis remonté jusqu'à ce point durant l'exécution à coup de printf.
    Sous Linux aucun problème.
    Sous Win j'ai essayé de de débugger (GDB) mon programme mais
    lors de l'utilisation du debugger pas de bug tout fonctionne bien.

    Je ne sais pas comment aller plus loin ... auriez vous une idée ?

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Il me semble que gtk_widget_destroy() est dépréciée non ? Il faut utiliser g_object_unref() et laisser le garbage collector de GTK+ faire le travail.

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par soft0613 Voir le message
    Il me semble que gtk_widget_destroy() est dépréciée non ? Il faut utiliser g_object_unref() et laisser le garbage collector de GTK+ faire le travail.
    Non, gtk_widget_destroy est parfaitement utilisable et son rôle est différent de g_object unref : gtk_widget_destroy

    @Slookeur : As tu des messages d'avertissement qui s'affiche ? Et tu sûr que le widget que tu passe à la fonction est correct (vérifie l'adresse mémoire utilisée) ? A part ça sans code, difficile d'en dire plus

  4. #4
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Autant pour moi, j'ai confondu... milles excuses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    Bonjour et merci pour vos réponses,

    je n'ai aucun message d'erreur et le widget existe bien et il y a quelque chose en mémoire:
    je le vois en utilisant le debugger avec un point d'arrêt avec le gtk_widget_desttroy()
    ... seulement avec le debugger pas d'erreur ?!

    Je vais uploader le code et le programme avant la fin de la semaine:
    http://www.phy.cmich.edu/people/lerou1s/isaacs/
    je posterais un lien à ce moment (dans ce fil ?)
    si tu as le temps d'y jeter un coup d'œil merci d'avance

    S.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    si tu lances ton programme sous linux avec valgrind, tu obtiendras peut être plus d'informations

  7. #7
    Membre confirmé
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    Merci pour cette bonne idée
    Après avoir corrigé les quelques erreurs renvoyées par Valgrind,
    principalement de lecture ou d'écriture de chaîne de caractères,
    je n'ai plus aucun problème

    Je ne sais pas comment le tout pouvais être imbriqué mais le bug est corrigé.

    Merci.

    S.

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    C'est assez courant d'avoir des crashes "bizarres" (durant des allocations/libérations de mémoire par exemple) quand tu écris hors du buffer alloué pour une chaîne de caractère. Tu vas corrompre de la mémoire "autour" de la chaîne, donc ça peut corrompre des structures de données utilisées pour les allocations mémoires ou bien des gobjects, ...

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

Discussions similaires

  1. sed - différence de comportement linux/AIX
    Par jack-ft dans le forum Shell et commandes POSIX
    Réponses: 7
    Dernier message: 02/07/2012, 17h12
  2. Réponses: 11
    Dernier message: 14/04/2010, 01h06
  3. Différence de comportement entre SE (win/Unix)
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 14/09/2008, 12h17
  4. [JFrame] [Win/Linux] Comportement keyPressed/keyReleased
    Par plegat dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/11/2004, 18h27

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