oxygen-gtk + xfce4 + perso
Fuite de mémoire
Cauldron, la prochaine version de Mageia

Troumad Membre non connecté
-
- Voir le profil du membre Troumad
- Inscrit le : 16/10/2010
- Site internet
- Groupes :
Je viens de corriger sur gros problème de fuite de mémoire avec mon programme que vous pouvez télécharger ici : http://troumad.org/Mes_regles/perso.php
Avec le thème oxygen-gtk, rapidement, la mémoire sature.
J'ai voulu voir l'origine de l'erreur. J'ai trouvé ça :
Code :
valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-reachable=yes ./perso
Qui m'a indiqué comme problème :
Code :
==23865== 309,329,920 bytes in 59 blocks are possibly lost in loss record 7,305 of 7,305
==23865== at 0x4C26DFF: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==23865== by 0xA72C7C9: ??? (in /usr/lib64/libpixman-1.so.0.28.2)
==23865== by 0xA72C87A: ??? (in /usr/lib64/libpixman-1.so.0.28.2)
==23865== by 0x65C6024: ??? (in /usr/lib64/libcairo.so.2.11200.12)
==23865== by 0x4F31E54: ??? (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x4F465B8: ??? (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x5048C67: gtk_style_context_get_valist (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x5091559: gtk_theming_engine_get (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x1192D98C: Oxygen::render_background(_GtkThemingEngine*, _cairo*, double, double, double, double) (in /usr/lib64/gtk-3.0/3.0.0/theming-engines/liboxygen-gtk.so)
==23865== by 0x504A645: gtk_render_background (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x5106CB9: ??? (in /usr/lib64/libgtk-3.so.0.600.2)
==23865== by 0x4FBEC9B: ??? (in /usr/lib64/libgtk-3.so.0.600.2)
J'ai changé le thème et je n'ai plus eu ces erreurs. Avant, j'avais ce thème, mais pas les fuites de mémoire.
Voir ici si le problème vous semble autre : http://www.developpez.net/forums/d1307564/general-developpement/programmation-systeme/linux/gtk/gtkp/boucher-fuite-memoire/
Amicalement Votre
Bernard SIAUD Alias Troumad
Bernard SIAUD Alias Troumad

elgrande71 Membre non connecté
-
- Voir le profil du membre elgrande71
- Inscrit le : 16/07/2012
- Site internet
A voir si d'autres vont la confirmer ou pas.
Faites progresser la science avec BOINC
Portail de la MT Libristes
Portail de la MT Libristes

Troumad Membre non connecté
-
- Voir le profil du membre Troumad
- Inscrit le : 16/10/2010
- Site internet
- Groupes :
Amicalement Votre
Bernard SIAUD Alias Troumad
Bernard SIAUD Alias Troumad

paiiou Membre non connecté
-
- Voir le profil du membre paiiou
- Inscrit le : 12/10/2010
- Site internet
Pour ma part, j'ai banni oxygen avec Xfce.
Dès l'installation, je supprime les paquetages.
voir http://paiiou.free.fr/Tuto/Install/xfce_mga3.sh
lignes 234 et suivantes
Des bureaux efficaces et rapides : Xfce, LXQt
En savoir plus sur Païou http://paiiou.free.fr
3 ordinateurs avec LXQt, 1 ordinateur avec Xfce
En savoir plus sur Païou http://paiiou.free.fr
3 ordinateurs avec LXQt, 1 ordinateur avec Xfce

Troumad Membre non connecté
-
- Voir le profil du membre Troumad
- Inscrit le : 16/10/2010
- Site internet
- Groupes :
1) Sous KDE, impossible de l'utiliser (mon fils râlait tant et plus). Je ne suis pas arrivé à changer des qui auraient pu permettre à mon programme de marcher.
2) Sous XFCE4, dès que j'ai enlevé le thème oxygen, ça passe.
Est-ce que quelqu'un aurait une idée ? Le code de mon programme est disponible ici : http://troumad.org/Mes_regles/perso3.zip
Édité par Troumad Le 30/10/2013 à 12h32
Amicalement Votre
Bernard SIAUD Alias Troumad
Bernard SIAUD Alias Troumad

Troumad Membre non connecté
-
- Voir le profil du membre Troumad
- Inscrit le : 16/10/2010
- Site internet
- Groupes :
C'est la présence de l'image de font dans le css qui fait tout planter avec le thème gtk-oxygène. Le problème est le même sous mageia 3.
Voici le programme :
Code :
#include <stdlib.h>
#include <gtk/gtk.h>
#include <errno.h>
int main (int argc, char *argv[])
{
GtkWidget *button = NULL;
GtkWidget *win = NULL;
GtkWidget *vbox = NULL;
GError * error=NULL; GdkDisplay *display;
GdkScreen *screen;
GtkCssProvider * css_provider;
/* Initialize GTK+ */
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
gtk_init (&argc, &argv);
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
/* Create the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "Hello World");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_widget_realize (win);
g_signal_connect (win, "destroy", gtk_main_quit, NULL);
/* Create a vertical box with buttons */
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (win), vbox);
button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
g_signal_connect (button, "clicked", gtk_main_quit, NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
display = gdk_display_get_default ();
screen = gdk_display_get_default_screen (display);
css_provider = gtk_css_provider_get_default ();
gtk_css_provider_load_from_path (css_provider,"mongtk.css",NULL);
if (error!=NULL)
{
g_printerr ("Unable to read file: %sn", error->message);
g_error_free(error);
}
gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (css_provider),GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (css_provider);
/* Enter the main loop */
gtk_widget_show_all (win);
gtk_main ();
return 0;
}
avec le fichier css :
Code :
GtkWindow {
background-image : url("images/dragon.jpg");
}
Remarque : l'image a du mal à s'afficher chez moi. Souvent, j'ai n'importe quoi à ce niveau
Sauf sous windows avec gtk 3.6.4.
Édité par Troumad Le 12/11/2013 à 16h27
Amicalement Votre
Bernard SIAUD Alias Troumad
Bernard SIAUD Alias Troumad
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie