调试Gtk至关重要

时间:2019-03-30 01:49:02

标签: gdb gtk

运行程序时,我在终端上收到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()函数上设置一个断点,但是执行并没有在那里停止。

我想念什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用G_DEBUG=fatal-criticals,以使应用程序的执行在发出临界点的第一个位置中断。

要在gdb中运行,请运行G_DEBUG=fatal-criticals gdb my-app,然后像往常一样在gdb中运行run以运行您的应用程序。

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

有关更多详细信息,请参见https://developer.gnome.org/glib/stable/glib-running.html

答案 1 :(得分:1)

  

我想念什么?

看起来像在阅读链接之后,您感到困惑的是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?