2009-07-16 6 views
1

Je suis confus par ces deux avertissements. Quelqu'un peut-il expliquer comment j'ai pu les déclencher, et comment ils pourraient être débogués dans gdb?GLib-GObject-CRITICAL warnings

(gtkworkbook:24668): GLib-GObject-CRITICAL **: g_cclosure_new: assertion `callback_func != NULL' failed

(gtkworkbook:24668): GLib-GObject-CRITICAL **: g_signal_connect_closure_by_id: assertion `closure != NULL' failed

+0

Je reçois tout le temps ... assez ennuyeux. – Zifre

+0

Quelle était généralement la cause du problème? –

Répondre

0

J'ai trouvé le problème.

Ce code a été porté d'une mise en œuvre originale en C, et j'avais besoin avant d'utiliser un tableau de pointeurs de fonction pour appeler les fonctions à l'intérieur d'une bibliothèque partagée. Bien que ce [semble] pour fonctionner au moment où j'ai réellement commencé à les utiliser ce n'était pas le cas. Je suis un peu perplexe sur pourquoi cela ne fonctionne pas, mais j'ai été en mesure de centraliser le problème à la partie de code suivante.

 
gtk_signal_connect (GTK_OBJECT (plugin()->workbook()->gtk_workbook), "switch-page", 
(GtkSignalFunc)this->signals[NOTEBOOK_SWITCHPAGE], plugin->workbook()); 

a été changé à ce qui suit:

 
gtk_signal_connect (GTK_OBJECT (plugin()->workbook()->gtk_workbook), "switch-page", 
(GtkSignalFunc)signal_gtknotebook_switchpage, plugin->workbook()); 

Maintenant, le code compile et je ne reçois pas des erreurs désagréables. Je pense c'est la réponse!

3

Une chose que vous pouvez essayer passer --g-fatal-warnings à Gtk :: Main, cela entraînera des avertissements à faire valoir. Vous pouvez attacher avec gdb et peut-être trouver plus de détails sur l'endroit où cela échoue.

Questions connexes