### Function

# GLib on_error_query

#### Declaration

    void
    g_on_error_query (
      const gchar* prg_name
    )

#### Description

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 `g_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, `g_on_error_stack_trace()` 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 `g_on_error_stack_trace()` instead.

#### Parameters

`prg_name`

  Type: `const gchar*`

  The program name, needed by gdb for the “[S]tack trace” option. If `prg_name` is `NULL`, `g_get_prgname()` is called to get the program name (which will work correctly if `gdk_init()` or `gtk_init()` has been called).

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.