onErrorQuery

fnvoid onErrorQuery(string prgName)

Prompts the user with [E]xit, [H]alt, show [S]tack trace or [P]roceed. This function is intended to be used for debugging use only. The following example shows how it can be used together with the [glib.global.log] functions.

#include <glib.h>

static void
log_handler (const gchar   *log_domain,
            GLogLevelFlags log_level,
            const gchar   *message,
            gpointer       user_data)
{
 g_log_default_handler (log_domain, log_level, message, user_data);

 g_on_error_query (MY_PROGRAM_NAME);
}

int
main (int argc, char *argv[])
{
 g_log_set_handler (MY_LOG_DOMAIN,
                    G_LOG_LEVEL_WARNING |
                    G_LOG_LEVEL_ERROR |
                    G_LOG_LEVEL_CRITICAL,
                    log_handler,
                    NULL);
 ...

If "[E]xit" is selected, the application terminates with a call to _exit(0).

If "[S]tack" trace is selected, [glib.global.onErrorStackTrace] is called. This invokes gdb, which attaches to the current process and shows a stack trace. The prompt is then shown again.

If "[P]roceed" is selected, the function returns.

This function may cause different actions on non-UNIX platforms.

On Windows consider using the G_DEBUGGER environment variable (see Running GLib Applications) and calling [glib.global.onErrorStackTrace] instead.

Parameters

prgNamethe program name, needed by gdb for the "[S]tack trace" option. If prg_name is null, [glib.global.getPrgname] is called to get the program name (which will work correctly if [gdk.global.init_] or [gtk.global.init_] has been called)