Ce n' “GLib-GObject-WARNING **: exemple invalides (NULL) pointeur de classe” signifie?
Chaque fois que je ferme mon Gtk# application, j'obtiens ceci:
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-WARNING **: g_set_prgname() called multiple times
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(/home/matthew/opensbs/OpenSBS/bin/Debug/OpenSBS.exe:5050): GLib-GObject-CRITICAL **: g_object_ref: assertion `object->ref_count > 0' failed
Je ne suis pas vraiment sûr de ce qui se passe ici. J'ai trouvé une personne avec un problème similaire sur google, mais ils semblaient être un utilisateur d'une application, pas un développeur. Une des idées?
Vous devez vous connecter pour publier un commentaire.
Quelque chose est assez sali-up.
g_set_prgname() est une routine interne qui est normalement appelé par un programme d'initialiseur comme gdk_init() ou gtk_init() (qui appelle gdk_init()). Donc, si on l'appelle deux fois, eh bien, il ne devrait pas. J'ai lu votre réponse, et peut-être certains Clairière routine d'initialisation est de l'appeler de manière redondante. Il serait utile de savoir quelles sont les versions de la Clairière et GTK vous êtes en cours d'exécution.
Autant que les autres messages... GLib/GObject est un objet système, avec l'héritage et le RTTI (run-time type identification), mis en œuvre dans C.
Ceux avertissement/critique paires indiquer que votre certains pointeurs d'objet sont a défaut de RTTI de test assez lamentablement. Ces tests sont communes dans GTK/GDK organes internes des choses comme, "je m'attends à ce pointeur à un tel ou un tel, mais je ferais mieux de assurez-vous avant de me traiter de cette façon." Chaque paire de messages que vous voyez indique un pointeur a été passé à cette routine, mais ce qu'il désigne n'est pas seulement non type d'objet, il n'est pas même l'allusion à tout ce que le RTTI système reconnaît, de sorte que le RTTI système est en train de jeter ses mains.
Les plus susceptibles coupables pour un tel pointeur de la faute comme ça, c'est:
Bien, je ne suis toujours pas sûr de ce que les moyens d'alerte, mais j'ai compris ce qui la causait:
J'ai eu un fichier glade avec un AccelGroup en elle. Le AccelGroup était une propriété de la Fenêtre principale et de ses MenuItems. Je l'ai retiré de la Fenêtre. C'est lorsque l'avertissement lancé. Je l'ai fixée par aussi de le supprimer du fichier glade entièrement (donc à le supprimer à partir du menu éléments).