|
From: <sv...@va...> - 2013-10-09 20:12:51
|
Author: philippe
Date: Wed Oct 9 20:12:39 2013
New Revision: 13631
Log:
Fix use of uninit heuristic set for monitor command
* initialise leak_check heuristic parameter in the leak_check monitor command
* show the default value (none heuristic) in the monitor help command
(none value chosen as default as this gives a backward compatible
behaviour).
* document the heuristic leak check parameter in memcheck manual
monitor command section
Modified:
trunk/gdbserver_tests/mchelp.stdoutB.exp
trunk/memcheck/docs/mc-manual.xml
trunk/memcheck/mc_main.c
Modified: trunk/gdbserver_tests/mchelp.stdoutB.exp
==============================================================================
--- trunk/gdbserver_tests/mchelp.stdoutB.exp (original)
+++ trunk/gdbserver_tests/mchelp.stdoutB.exp Wed Oct 9 20:12:39 2013
@@ -29,8 +29,8 @@
[increased*|changed|any]
[unlimited*|limited <max_loss_records_output>]
* = defaults
- where kind is one of definite indirect possible reachable all none
- where heur is one of stdstring newarray multipleinheritance all none
+ where kind is one of definite indirect possible reachable all none
+ where heur is one of stdstring newarray multipleinheritance all none*
Examples: leak_check
leak_check summary any
leak_check full kinds indirect,possible
@@ -84,8 +84,8 @@
[increased*|changed|any]
[unlimited*|limited <max_loss_records_output>]
* = defaults
- where kind is one of definite indirect possible reachable all none
- where heur is one of stdstring newarray multipleinheritance all none
+ where kind is one of definite indirect possible reachable all none
+ where heur is one of stdstring newarray multipleinheritance all none*
Examples: leak_check
leak_check summary any
leak_check full kinds indirect,possible
Modified: trunk/memcheck/docs/mc-manual.xml
==============================================================================
--- trunk/memcheck/docs/mc-manual.xml (original)
+++ trunk/memcheck/docs/mc-manual.xml Wed Oct 9 20:12:39 2013
@@ -1603,18 +1603,19 @@
<listitem>
<para><varname>leak_check [full*|summary]
[kinds <set>|reachable|possibleleak*|definiteleak]
+ [heuristics heur1,heur2,...]
[increased*|changed|any]
[unlimited*|limited <max_loss_records_output>]
</varname>
performs a leak check. The <varname>*</varname> in the arguments
indicates the default values. </para>
- <para> If the first argument is <varname>summary</varname>, only a
- summary of the leak search is given; otherwise a full leak report
- is produced. A full leak report gives detailed information for
- each leak: the stack trace where the leaked blocks were allocated,
- the number of blocks leaked and their total size. When a full
- report is requested, the next two arguments further specify what
+ <para> If the <varname>[full*|summary]</varname> argument is
+ <varname>summary</varname>, only a summary of the leak search is given;
+ otherwise a full leak report is produced. A full leak report gives
+ detailed information for each leak: the stack trace where the leaked blocks
+ were allocated, the number of blocks leaked and their total size. When a
+ full report is requested, the next two arguments further specify what
kind of leaks to report. A leak's details are shown if they match
both the second and third argument. A full leak report might
output detailed information for many leaks. The nr of leaks for
@@ -1624,9 +1625,9 @@
search outputs the records with the biggest number of bytes.
</para>
- <para>The second argument controls what kind of blocks are shown for
- a <varname>full</varname> leak search. The set of leak kinds to show
- can be specified using a <varname><set></varname> similarly
+ <para>The <varname>kinds</varname> argument controls what kind of blocks
+ are shown for a <varname>full</varname> leak search. The set of leak kinds
+ to show can be specified using a <varname><set></varname> similarly
to the command line option <option>--show-leak-kinds</option>.
Alternatively, the value <varname>definiteleak</varname>
is equivalent to <varname>kinds definite</varname>, the
@@ -1638,8 +1639,16 @@
all</varname>).
</para>
- <para>The third argument controls what kinds of changes are shown
- for a <varname>full</varname> leak search. The
+ <para>The <varname>heuristics</varname> argument controls the heuristics
+ used during the leak search. The set of heuristics to use can be specified
+ using a <varname><set></varname> similarly
+ to the command line option <option>--leak-check-heuristics</option>.
+ The default value for the <varname>heuristics</varname> argument is
+ <varname>heuristics none</varname>.
+ </para>
+
+ <para>The <varname>[increased*|changed|any]</varname> argument controls what
+ kinds of changes are shown for a <varname>full</varname> leak search. The
value <varname>increased</varname> specifies that only block
allocation stacks with an increased number of leaked bytes or
blocks since the previous leak check should be shown. The
Modified: trunk/memcheck/mc_main.c
==============================================================================
--- trunk/memcheck/mc_main.c (original)
+++ trunk/memcheck/mc_main.c Wed Oct 9 20:12:39 2013
@@ -5374,8 +5374,8 @@
" [increased*|changed|any]\n"
" [unlimited*|limited <max_loss_records_output>]\n"
" * = defaults\n"
-" where kind is one of definite indirect possible reachable all none\n"
-" where heur is one of stdstring newarray multipleinheritance all none\n"
+" where kind is one of definite indirect possible reachable all none\n"
+" where heur is one of stdstring newarray multipleinheritance all none*\n"
" Examples: leak_check\n"
" leak_check summary any\n"
" leak_check full kinds indirect,possible\n"
@@ -5456,7 +5456,8 @@
lcp.mode = LC_Full;
lcp.show_leak_kinds = R2S(Possible) | R2S(Unreached);
- lcp.errors_for_leak_kinds = 0; /* no errors for interactive leak search. */
+ lcp.errors_for_leak_kinds = 0; // no errors for interactive leak search.
+ lcp.heuristics = 0;
lcp.deltamode = LCD_Increased;
lcp.max_loss_records_output = 999999999;
lcp.requested_by_monitor_command = True;
|