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