mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 06:26:15 +01:00
Use SIGTRAP (via G_BREAKPOINT()) if G_DEBUG=fatal-warnings
On Linux with gdb, it's much more convenient to debug programs using G_DEBUG=fatal-warnings if we send SIGTRAP instead of abort() by default. The default handler for both is to terminate the process. In particular this makes it more easily possible to debug a warning that's not the first in a program; you can skip past it and go to the warning you care about. The "aborting..." message is removed since it's no longer accurate, and anyways was never very useful; crashes should show up in ABRT/apport type crash catching systems. https://bugzilla.gnome.org/show_bug.cgi?id=648423
This commit is contained in:
parent
1763c2a575
commit
a04efe6afb
@ -548,14 +548,10 @@ g_logv (const gchar *log_domain,
|
|||||||
else
|
else
|
||||||
abort ();
|
abort ();
|
||||||
#else
|
#else
|
||||||
#if defined (G_ENABLE_DEBUG) && defined (SIGTRAP)
|
|
||||||
if (!(test_level & G_LOG_FLAG_RECURSION))
|
if (!(test_level & G_LOG_FLAG_RECURSION))
|
||||||
G_BREAKPOINT ();
|
G_BREAKPOINT ();
|
||||||
else
|
else
|
||||||
abort ();
|
abort ();
|
||||||
#else /* !G_ENABLE_DEBUG || !SIGTRAP */
|
|
||||||
abort ();
|
|
||||||
#endif /* !G_ENABLE_DEBUG || !SIGTRAP */
|
|
||||||
#endif /* !G_OS_WIN32 */
|
#endif /* !G_OS_WIN32 */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +814,6 @@ _g_log_fallback_handler (const gchar *log_domain,
|
|||||||
#ifndef G_OS_WIN32
|
#ifndef G_OS_WIN32
|
||||||
gchar pid_string[FORMAT_UNSIGNED_BUFSIZE];
|
gchar pid_string[FORMAT_UNSIGNED_BUFSIZE];
|
||||||
#endif
|
#endif
|
||||||
gboolean is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
|
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
/* we cannot call _any_ GLib functions in this fallback handler,
|
/* we cannot call _any_ GLib functions in this fallback handler,
|
||||||
@ -855,10 +850,6 @@ _g_log_fallback_handler (const gchar *log_domain,
|
|||||||
write_string (fd, level_prefix);
|
write_string (fd, level_prefix);
|
||||||
write_string (fd, ": ");
|
write_string (fd, ": ");
|
||||||
write_string (fd, message);
|
write_string (fd, message);
|
||||||
if (is_fatal)
|
|
||||||
write_string (fd, "\naborting...\n");
|
|
||||||
else
|
|
||||||
write_string (fd, "\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -927,7 +918,6 @@ g_log_default_handler (const gchar *log_domain,
|
|||||||
const gchar *message,
|
const gchar *message,
|
||||||
gpointer unused_data)
|
gpointer unused_data)
|
||||||
{
|
{
|
||||||
gboolean is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
|
|
||||||
gchar level_prefix[STRING_BUFFER_SIZE], *string;
|
gchar level_prefix[STRING_BUFFER_SIZE], *string;
|
||||||
GString *gstring;
|
GString *gstring;
|
||||||
int fd;
|
int fd;
|
||||||
@ -988,10 +978,7 @@ g_log_default_handler (const gchar *log_domain,
|
|||||||
|
|
||||||
g_string_free (msg, TRUE);
|
g_string_free (msg, TRUE);
|
||||||
}
|
}
|
||||||
if (is_fatal)
|
g_string_append (gstring, "\n");
|
||||||
g_string_append (gstring, "\naborting...\n");
|
|
||||||
else
|
|
||||||
g_string_append (gstring, "\n");
|
|
||||||
|
|
||||||
string = g_string_free (gstring, FALSE);
|
string = g_string_free (gstring, FALSE);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user