Causing Gtk to abort on assert

后端 未结 2 1286
孤独总比滥情好
孤独总比滥情好 2021-01-02 19:04

I have to debug a program which is heavily dependent on Gtk. The issue is that for some reason a lot of runtime warnings have started appearing when working with GtkWi

2条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-02 19:44

    Use g_log_set_handler, and/or g_log_default_handler and provide a GLogFunc of your own design that aborts based on the GLogLevelFlags passed to it for each message.

    void abort_on_g_log(
        const gchar *log_domain,
        GLogLevelFlags log_level,
        const gchar *message,
        gpointer user_data)
    {
        if (log_level & G_LOG_LEVEL_CRITICAL) abort();
        g_log_default_handler(log_domain, log_level, message, user_data);
    }
    

    Update0

    If you're happy having glib terminate for you, you can use:

    g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL|G_LOG_LEVEL_WARNING);
    

    or run with G_DEBUG=fatal_warnings ./myprog ... if glib is correctly configured, see here for more.

提交回复
热议问题