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



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13631 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/memcheck/docs/mc-manual.xml b/memcheck/docs/mc-manual.xml
index 7eee0c5..4c6f862 100644
--- a/memcheck/docs/mc-manual.xml
+++ b/memcheck/docs/mc-manual.xml
@@ -1603,18 +1603,19 @@
   <listitem>
     <para><varname>leak_check [full*|summary]
                               [kinds &lt;set&gt;|reachable|possibleleak*|definiteleak]
+                              [heuristics heur1,heur2,...]
                               [increased*|changed|any]
                               [unlimited*|limited &lt;max_loss_records_output&gt;]
           </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>&lt;set&gt;</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>&lt;set&gt;</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>&lt;set&gt;</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
diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c
index b27d42c..c3891b8 100644
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -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;