gpt4 book ai didi

c# - "GLib-GObject-WARNING **: instance with invalid (NULL) class pointer"是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 11:48:14 24 4
gpt4 key购买 nike

每当我关闭我的 Gtk# 应用程序时,我都会得到:

(/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

我不太确定这里发生了什么。我在谷歌上发现了一个有类似问题的人,但他们似乎是应用程序的用户,而不是开发人员。一个想法?

最佳答案

有些东西很乱。

g_set_prgname() 是一个内部例程,通常仅由程序初始化程序调用,如 gdk_init() 或 gtk_init()(调用 gdk_init())。因此,如果它被调用两次,那么它不应该被调用。我阅读了您的回答,也许某些 Glade 初始化例程正在冗余地调用它。这有助于了解您正在运行的 Glade 和 GTK 的版本。

至于其他消息...GLib/GObject 是一个对象系统,具有单继承和 RTTI(运行时类型识别),用 C 语言实现。

那些警告/严重对表明您的一些对象指针非常糟糕地未能通过 RTTI 测试。这样的测试在 GTK/GDK 内部很常见——比如,“我希望这个指针是这样的,但我最好在这样对待它之前先确定一下。”你看到的每个消息对都表明一个指针已经传递给这样的例程,但它指向的不仅不是预期的对象类型,它甚至没有指向 RTTI 系统识别的任何东西,所以 RTTI 系统正在举手.

这样的指针最有可能失败的罪魁祸首是:

  • 这是一个指向垃圾的野指针
  • 它是陈旧的 - 它曾经指向一个已经被破坏的合法对象
  • 它指向一个事件对象,但是对象的内容已经严重损坏,RTTI 系统无法确定对象的类型

关于c# - "GLib-GObject-WARNING **: instance with invalid (NULL) class pointer"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com