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.
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 "Exit" is selected, the application terminates with a call
to _exit(0).
If "Stack" 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.
the program name, needed by gdb for the "Stack 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)
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.
|[<!-- language="C" --> #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 "Exit" is selected, the application terminates with a call to _exit(0).
If "Stack" 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 "Proceed" 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.