调试 Gtk-CRITICAL

Debugging Gtk-CRITICAL

当 运行 我的程序时,我在终端上收到 Gtk-CRITICAL 错误,我想修复它。

我通过Google找到了this link,但发现gdb中没有这样的选项:

igor@IgorReinCloud ~/dbhandler/Debug/dbhandler $ gdb --g-fatal-warnings dbhandler
gdb: unrecognized option '--g-fatal-warnings'
Use `gdb --help' for a complete list of options.

我也尝试在 g_log() 函数上设置断点,但执行并没有就此停止。

我错过了什么?

谢谢。

您可以使用 G_DEBUG=fatal-criticals,这样应用程序的执行就会在发出关键信号的第一个位置中断。

到 运行 在 gdb 中,运行 G_DEBUG=fatal-criticals gdb my-app,和往常一样,在 gdb 中 run 到 运行 你的应用程序。

您还可以使用 export 设置 G_DEBUG 环境变量(如果在 bash 中)。因此,您可以 export G_DEBUG=fatal-criticals,然后 运行 您的应用程序 gdb my-app,这将具有相同的效果。

有关详细信息,请参阅 https://docs.gtk.org/glib/running.html

What am I missing?

在阅读 link 后看起来像这样,您对 gdb 应该有 --g-fatal-warnings 调试 Gtk 应用程序的选项感到困惑。事实并非如此,因为 gdb 不是 Gtk 应用程序,但您的程序是。所以你应该 运行 你的程序在 gdb 中带有 --g-fatal-warnings 选项,像这样:

gdb --args dbhandler --g-fatal-warnings

另见相关问题How do I run a program with commandline args using gdb within a bash script?