glib r7188 - in trunk/docs/reference: . glib
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7188 - in trunk/docs/reference: . glib
- Date: Wed, 16 Jul 2008 04:24:56 +0000 (UTC)
Author: matthiasc
Date: Wed Jul 16 04:24:56 2008
New Revision: 7188
URL: http://svn.gnome.org/viewvc/glib?rev=7188&view=rev
Log:
Improve docs
Modified:
trunk/docs/reference/ChangeLog
trunk/docs/reference/glib/running.sgml
Modified: trunk/docs/reference/glib/running.sgml
==============================================================================
--- trunk/docs/reference/glib/running.sgml (original)
+++ trunk/docs/reference/glib/running.sgml Wed Jul 16 04:24:56 2008
@@ -149,14 +149,17 @@
which performs sanity checks on the released memory slices.
Invalid slice adresses or slice sizes will be reported and lead to
a program halt.
- This option should only be used in debugging scenarios, because it
- significantly degrades GSlice performance. Extra per slice memory
- is requied to do the necessary bookeeping, and multi-thread scalability
- is given up to perform global slice validation.
- This option is mostly useful in scenarios where program crashes are encountered
- while GSlice is in use, but crashes cannot be reproduced with G_SLICE=always-malloc.
- A potential cause for such a situation that will be caught by G_SLICE=debug-blocks
- is e.g.:
+ This option is for debugging scenarios.
+ In particular, client packages sporting their own test suite should
+ <emphasis>always enable this option when running tests</emphasis>.
+ Global slice validation is ensured by storing size and address information
+ for each allocated chunk, and maintaining a global hash table of that data.
+ That way, multi-thread scalability is given up, and memory consumption is
+ increased. However, the resulting code usually performs acceptably well,
+ possibly better than with comparable memory checking carried out using
+ external tools. An example of a memory corruption scenario that cannot be
+ reproduced with <literal>G_SLICE=always-malloc</literal>, but will be caught
+ by <literal>G_SLICE=debug-blocks</literal> is as follows:
<programlisting>
void *slist = g_slist_alloc(); /* void* gives up type-safety */
g_list_free (slist); /* corruption: sizeof (GSList) != sizeof (GList) */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]