【问题标题】:GLib-GObject-CRITICAL warningsGLib-GObject-CRITICAL 警告
【发布时间】:2009-07-17 21:24:19
【问题描述】:

我对这两个警告感到困惑。谁能解释一下我是如何触发它们的,以及如何在 gdb 中调试它们?

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

(gtkworkbook:24668): GLib-GObject-CRITICAL **: g_signal_connect_closure_by_id: 断言 `closure != NULL' 失败

【问题讨论】:

  • 我总是得到这些......很烦人。
  • 问题的原因通常是什么?

标签: c++ c gtk


【解决方案1】:

您可以尝试的一件事是将 --g-fatal-warnings 传递给 Gtk::Main,这将导致警告断言。您可以附加 gdb 并可能找出有关失败位置的更多详细信息。

【讨论】:

    【解决方案2】:

    我发现了问题。

    此代码是从 C 中的原始实现移植而来的,我之前需要使用函数指针数组来调用共享库中的函数。虽然这 [似乎] 在我真正开始使用它们时起作用,但事实并非如此。我有点不明白为什么它不起作用,但我能够将问题集中到下面的代码中。

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

    已更改为以下内容:

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

    现在,代码可以编译,我没有收到任何令人讨厌的错误。我认为这就是答案!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多