函数
GLibon_error_query
声明 [src]
void
g_on_error_query (
const gchar* prg_name
)
描述 [src]
使用 [E]xit, [H]alt, show [S]tack trace or [P]roceed
提示用户。此函数仅用于调试。以下示例显示如何将它与 g_log()
函数结合使用。
#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);
...
如果选择 “[E]xit”,应用程序会通过调用 _exit(0) 终止。
如果选择 “[S]tack” 跟踪,则会调用 g_on_error_stack_trace()
。这会调用 gdb,它会附加到当前进程并显示堆栈跟踪。然后提示将再次显示 。
如果选择 “[P]roceed”,函数会 返回。
此函数可能对非 UNIX 平台造成不同的影响。
在 Windows 中,请考虑使用 G_DEBUGGER
环境变量(请参见 运行 GLib 应用程序)并调用 g_on_error_stack_trace()
。