代码之家  ›  专栏  ›  技术社区  ›  Igor

调试GTK关键

  •  0
  • Igor  · 技术社区  · 6 年前

    当运行我的程序时,我得到 Gtk-CRITICAL 终端出错,我想修复。

    我发现 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 回复  |  直到 6 年前
        1
  •  2
  •   Mohammed Sadiq    6 年前

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

    在gdb内部运行,运行 G_DEBUG=fatal-criticals gdb my-app ,像往常一样,做 run 在gdb内部运行应用程序。

    你也可以设置 G_DEBUG 环境变量 export (如果在 bash )。这样你就可以 export G_DEBUG=fatal-criticals ,然后以 gdb my-app ,也会有同样的效果。

    https://developer.gnome.org/glib/stable/glib-running.html 更多细节

        2
  •  1
  •   ks1322    6 年前

    我错过了什么?

    看了链接之后,你很困惑gdb应该 --g-fatal-warnings 用于调试gtk应用程序的选项。这不是因为gdb不是gtk应用程序,而是因为您的程序是。所以你应该用 --G-致命警告 GDB中的选项如下:

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

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

    推荐文章