Add "J" (JSON) support to malloc_stats_print().

This resolves #474.
This commit is contained in:
Jason Evans 2016-11-01 15:28:54 -07:00
parent 4752a54eeb
commit b599b32280
2 changed files with 894 additions and 416 deletions

View File

@ -410,29 +410,30 @@ for (i = 0; i < nbins; i++) {
/* Do something with bin_size... */
}]]></programlisting></para>
<para>The <function>malloc_stats_print()</function> function
writes human-readable summary statistics via the
<parameter>write_cb</parameter> callback function pointer and
<parameter>cbopaque</parameter> data passed to
<parameter>write_cb</parameter>, or
<function>malloc_message()</function> if
<parameter>write_cb</parameter> is <constant>NULL</constant>. This
function can be called repeatedly. General information that never
changes during execution can be omitted by specifying "g" as a character
<para>The <function>malloc_stats_print()</function> function writes
summary statistics via the <parameter>write_cb</parameter> callback
function pointer and <parameter>cbopaque</parameter> data passed to
<parameter>write_cb</parameter>, or <function>malloc_message()</function>
if <parameter>write_cb</parameter> is <constant>NULL</constant>. The
statistics are presented in human-readable form unless <quote>J</quote> is
specified as a character within the <parameter>opts</parameter> string, in
which case the statistics are presented in <ulink
url="http://www.json.org/">JSON format</ulink>. This function can be
called repeatedly. General information that never changes during
execution can be omitted by specifying <quote>g</quote> as a character
within the <parameter>opts</parameter> string. Note that
<function>malloc_message()</function> uses the
<function>mallctl*()</function> functions internally, so
inconsistent statistics can be reported if multiple threads use these
functions simultaneously. If <option>--enable-stats</option> is
specified during configuration, &ldquo;m&rdquo; and &ldquo;a&rdquo; can
be specified to omit merged arena and per arena statistics, respectively;
&ldquo;b&rdquo;, &ldquo;l&rdquo;, and &ldquo;h&rdquo; can be specified to
omit per size class statistics for bins, large objects, and huge objects,
respectively. Unrecognized characters are silently ignored. Note that
thread caching may prevent some statistics from being completely up to
date, since extra locking would be required to merge counters that track
thread cache operations.
</para>
<function>mallctl*()</function> functions internally, so inconsistent
statistics can be reported if multiple threads use these functions
simultaneously. If <option>--enable-stats</option> is specified during
configuration, <quote>m</quote> and <quote>a</quote> can be specified to
omit merged arena and per arena statistics, respectively;
<quote>b</quote>, <quote>l</quote>, and <quote>h</quote> can be specified
to omit per size class statistics for bins, large objects, and huge
objects, respectively. Unrecognized characters are silently ignored.
Note that thread caching may prevent some statistics from being completely
up to date, since extra locking would be required to merge counters that
track thread cache operations.</para>
<para>The <function>malloc_usable_size()</function> function
returns the usable size of the allocation pointed to by

File diff suppressed because it is too large Load Diff