mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
782a8e2e7c
Thu Dec 28 10:21:46 2000 Tim Janik <timj@gtk.org> * gmem.[hc]: got rid of outdated dmalloc support. provide g_try_malloc() and g_try_realloc() which _may_ fail and return NULL. nuked g_mem_check(), provided GMemVTable for memory function virtualization, alterable at program startup with g_mem_set_vtable(). provided glib_mem_profiler_table and g_mem_profile() to support limited profiling information out of the box (uses mprotect() for free()ed areas on linux). provide globally visible G_MEM_ALIGN. buncha cleanups. * docs/macros.txt: file to get a clue about the various configuration macros. * docs/debugging.txt: explain debugging traps. * configure.in: got rid of --enable-mem-check and --enable-mem-profile, define GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG. check malloc prototypes and define SANE_MALLOC_PROTOS is we can use them. <boy, is this file a mess> * gutils.c, gscanner.c: fix up compatibility warnings, use g_message(). Thu Dec 28 11:36:44 2000 Tim Janik <timj@gtk.org> * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2 fucntionality if DISABLE_MEM_POOLS is defined. * gtype.c: honour DISABLE_MEM_POOLS. * gsignal.c (g_signal_init): flag signal key bsearch array with G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour DISABLE_MEM_POOLS. * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE | G_PARAM_WRITABLE).
29 lines
1.1 KiB
Plaintext
29 lines
1.1 KiB
Plaintext
|
|
|
|
G_BREAKPOINT () traps for the debugger
|
|
======================================
|
|
|
|
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 glib_trap_free_size;
|
|
static volatile gulong glib_trap_realloc_size;
|
|
static volatile gulong glib_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 *glib_trap_object_ref;
|
|
If set to a valid object pointer, ref/unref will be intercepted
|
|
with G_BREAKPOINT ();
|
|
|
|
|
|
2000/12/28 Tim Janik
|