2009-07-16 3 views
1

Ich bin verwirrt durch diese beiden Warnungen. Kann mir jemand erklären, wie ich dazu gekommen sein könnte, sie auszulösen und wie sie in gdb debuggen könnten?GLib-GObject-CRITICAL Warnungen

(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

Ich bekomme diese die ganze Zeit ... ziemlich nervig. – Zifre

+0

Was war normalerweise die Ursache des Problems? –

Antwort

0

Ich habe das Problem gefunden.

Dieser Code wurde von einer ursprünglichen Implementierung in C portiert, und ich hatte zuvor die Anforderung, ein Array von Funktionszeigern zu verwenden, um die Funktionen innerhalb einer gemeinsam genutzten Bibliothek aufzurufen. Obwohl diese [schien] zu der Zeit zu arbeiten, sobald ich tatsächlich begann, sie zu verwenden, war es nicht der Fall. Ich bin ein wenig ratlos, warum es nicht funktioniert, aber ich war in der Lage, das Problem auf den folgenden Code zu zentralisieren.

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

wurde wie folgt geändert:

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

Nun wird der Code kompiliert und ich bin keine bösen Fehler bekommen. I denke das ist die Antwort!

3

Eine Sache, die Sie versuchen können in -G-fatal-Warnungen zu Gtk :: Haupt wird übergeben, wird diese Warnungen führen zu behaupten. Sie können mit gdb anhängen und vielleicht mehr Details darüber herausfinden, wo dies fehlschlägt.