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 :

gtk + valgrin :(


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut gtk + valgrin :(
    Bonjour.
    sur un code trés simple de gtk, je me trouve avec beaucoup d'erreur mémoire...
    Je voulais savoir ce que vous en pensez, je ne comprend pas ou est le problème...

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    int main (int argc, char **argv)
    {
      GtkWidget *p_window = NULL;
     
      /* Initialisation de GTK+ */
      gtk_init (&argc, &argv);
     
      /* Creation de la fenetre principale de notre application */
      p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (G_OBJECT (p_window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
     
      /* Affichage de la fenetre principale */
      gtk_widget_show (p_window);
      /* Lancement de la boucle principale */
      gtk_main ();
      return EXIT_SUCCESS;
    }
    lancé par
    G_SLICE=always-malloc valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file=log --error-limit=no

    Merci.
    Fichiers attachés Fichiers attachés

  2. #2
    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
    Les blocs "still reachable" ne sont pas très grave. Si vraiment ça te gêne pour ce que tu veux faire, le mieux c'est probablement de créer un fichier de suppression pour cacher tous ces blocs encore accessibles

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Les blocs "still reachable" ne sont pas très grave. Si vraiment ça te gêne pour ce que tu veux faire,
    OK merci. Le truc c'est pour un projet beaucoup plus gros. Vue les erreurs, je voulais vérifier avec un programme simple, savoir ce que j'obtiens pour ne pas les prendre en compte. Mais j'en ai quasiment autant, lol.

    Çà me parait beaucoup tout de même... Surtout les accès à de la mémoire non initialisé...

    C'est quoi les blocs "still reachable" ?

    Une mise à jour de gtk serai la bien venue?
    le mieux c'est probablement de créer un fichier de suppression pour cacher tous ces blocs encore accessibles
    c'est à dire?

    merci

  4. #4
    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
    Citation Envoyé par Mongaulois Voir le message
    OK merci. Le truc c'est pour un projet beaucoup plus gros. Vue les erreurs, je voulais vérifier avec un programme simple, savoir ce que j'obtiens pour ne pas les prendre en compte. Mais j'en ai quasiment autant, lol.
    Commence sans le --show-reachable=yes, ça fera le ménage déjà

    Citation Envoyé par Mongaulois Voir le message
    Çà me parait beaucoup tout de même... Surtout les accès à de la mémoire non initialisé...
    Je ne vois pas de tel message dans le fichier que tu as attaché

    Citation Envoyé par Mongaulois Voir le message
    C'est quoi les blocs "still reachable" ?
    Du code de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main (int argc, char **argv) 
    {
       char *str = g_strdup ("J'en ai besoin pour toute la duree du programme");
    /* du code du code du code mais pas de g_free (str); */
      return 0;
    }
    Techniquement, t'as un leak de "str", mais en pratique tu t'en fous parce que l'allocation n'est faite qu'une fois, et la mémoire libérée à la sortie de ton programme. Le --still-reachable ça indique ce genre d'allocations. Elles peuvent être problématiques dans certains cas, donc ça peut être intéressant d'y regarder, mais c'est en général plus productif de pas les activer dans un premier temps et de les rajouter quand le reste est clean si vraiment on est intéressé.

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    merci, j'ai regarder tout cela

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Je ne vois pas de tel message dans le fichier que tu as attaché
    Je me suis un peu melangé avec le log de l'autre exe...
    Merci pour les renseignement, ca m'aide

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Aucas ou il peut y avoir une reponse simple, voici les fuite memoire lié à GTK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ==17474== 112 (8 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 23 of 170
    ==17474==    at 0x1B905D32: realloc (vg_replace_malloc.c:196)
    ==17474==    by 0x41629C44: (within /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x4162A178: (within /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x4162C041: (within /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x4162CB43: _XlcCreateLC (in /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x1B910267: _XlcDefaultLoader (in /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2)
    ==17474==    by 0x41633E12: _XlcDynamicLoad (in /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x41604F42: _XOpenLC (in /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x41605206: _XrmInitParseInfo (in /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x415ED166: (within /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x415EF0D7: XrmGetStringDatabase (in /usr/X11R6/lib/libX11.so.6.2)
    ==17474==    by 0x415D1FBC: XGetDefault (in /usr/X11R6/lib/libX11.so.6.2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ==17474== 800 bytes in 20 blocks are possibly lost in loss record 118 of 170
    ==17474==    at 0x1B905C49: calloc (vg_replace_malloc.c:175)
    ==17474==    by 0x41803BDF: g_malloc0 (in /usr/lib/libglib-2.0.so.0.400.7)
    ==17474==    by 0x418793DD: (within /usr/lib/libgobject-2.0.so.0.400.7)
    ==17474==    by 0x418796A5: (within /usr/lib/libgobject-2.0.so.0.400.7)
    ==17474==    by 0x41882A6C: g_type_init_with_debug_flags (in /usr/lib/libgobject-2.0.so.0.400.7)
    ==17474==    by 0x41882BC1: g_type_init (in /usr/lib/libgobject-2.0.so.0.400.7)
    ==17474==    by 0x4FD4CF9E: gdk_parse_args (in /usr/lib/libgdk-x11-2.0.so.0.400.13)
    ==17474==    by 0x4FB5E256: gtk_parse_args (in /usr/lib/libgtk-x11-2.0.so.0.400.13)
    ==17474==    by 0x4FB5E96B: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.400.13)
    ==17474==    by 0x4FB5E9B1: gtk_init (in /usr/lib/libgtk-x11-2.0.so.0.400.13)

Discussions similaires

  1. Compilation GTK+ DevC++
    Par GLDavid dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 30/06/2004, 23h04
  2. [web] Installation de gtk
    Par toto_titi dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 30/06/2003, 11h24
  3. [GTK]instal devPack avec dev c++
    Par FreshVic dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 15/04/2003, 16h48
  4. [Kylix] Kylix GTK et QT
    Par mailstef dans le forum EDI
    Réponses: 2
    Dernier message: 19/11/2002, 21h53
  5. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 14h55

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