mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 23:46:15 +01:00
22357542e9
Sun Feb 4 07:38:32 2001 Tim Janik <timj@gtk.org> * docs/debugging.txt: s/glib_trap_/g_trap_/. add comments on g_trap_instance_signals, g_trace_instance_signals and GRUNTIME_DEBUG. * gmem.c: s/glib_trap_/g_trap_/. Sun Feb 4 07:30:53 2001 Tim Janik <timj@gtk.org> * gtype.[hc]: changed g_type_init() to take debugging flags initially, a combination of G_TYPE_DEBUG_OBJECTS and G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd here, but basically g_type_int() serves as initialization fucntion for all of GType, GObject, GSignal, so what the heck. * gobject.c: special case debugging code properly. changed glib_trap_object_ref to g_trap_object_ref. * gsignal.c: add signal emission debugging abilities, along with a new trap object g_trap_instance_signals.
42 lines
1.8 KiB
Plaintext
42 lines
1.8 KiB
Plaintext
|
|
Traps (G_BREAKPOINT) and traces for the debuging
|
|
================================================
|
|
|
|
Some code portions contain trap variables that can be set during
|
|
debugging time if G_ENABLE_DEBUG has been defined upon compilation
|
|
(use the --enable-debug=yes option to configure for this, macros.txt
|
|
covers more details).
|
|
Such traps lead to immediate code halts to examine the current
|
|
program state and backtrace.
|
|
Currently, the following trap variables exist:
|
|
|
|
static volatile gulong g_trap_free_size;
|
|
static volatile gulong g_trap_realloc_size;
|
|
static volatile gulong g_trap_malloc_size;
|
|
If set to a size > 0, g_free(), g_realloc() and g_malloc()
|
|
respectively, will be intercepted if the size matches the
|
|
size of the corresponding memory block to free/reallocate/allocate.
|
|
This will only work with g_mem_set_vtable (glib_mem_profiler_table)
|
|
upon startup though, because memory profiling is required to match
|
|
on the memory block sizes.
|
|
static volatile GObject *g_trap_object_ref;
|
|
If set to a valid object pointer, ref/unref will be intercepted
|
|
with G_BREAKPOINT ();
|
|
static volatile gpointer *g_trap_instance_signals;
|
|
static volatile gpointer *g_trace_instance_signals;
|
|
If set to a valid instance pointer, debugging messages
|
|
will be spewed about emissions of signals on this instance.
|
|
For g_trap_instance_signals matches, the emissions will
|
|
also be intercepted with G_BREAKPOINT ();
|
|
|
|
Environment variables for debugging
|
|
===================================
|
|
When G_ENABLE_DEBUG was defined upon compilation, GRuntime supports
|
|
an environment variable GRUNTIME_DEBUG that can be set to a
|
|
combination of the flags passed in to g_type_init() (currently
|
|
"objects" and "signals") to trigger debugging messages about
|
|
object bookkeeping and signal emissions during runtime.
|
|
|
|
|
|
2000/02/04 Tim Janik
|