]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 390310 - Output summaries in XML files
authorPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 11 May 2025 13:41:10 +0000 (15:41 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 25 May 2025 19:04:25 +0000 (21:04 +0200)
Original patch contributed by renaultd@free.fr

67 files changed:
coregrind/m_errormgr.c
coregrind/m_libcassert.c
coregrind/m_libcprint.c
coregrind/m_main.c
coregrind/m_scheduler/scheduler.c
docs/internals/xml-output-protocol6.txt [new file with mode: 0644]
drd/tests/annotate_barrier_xml.stderr.exp
drd/tests/annotate_trace_memory_xml.stderr.exp-32bit
drd/tests/annotate_trace_memory_xml.stderr.exp-32bit-clang
drd/tests/annotate_trace_memory_xml.stderr.exp-64bit
drd/tests/annotate_trace_memory_xml.stderr.exp-arm
drd/tests/annotate_trace_memory_xml.stderr.exp-mips32
drd/tests/bar_bad_xml.stderr.exp
drd/tests/bar_bad_xml.stderr.exp-freebsd
drd/tests/bar_bad_xml.stderr.exp-no-barrier
drd/tests/bar_bad_xml.stderr.exp-nohang
drd/tests/bar_bad_xml.stderr.exp-solaris
drd/tests/fp_race_xml.stderr.exp
drd/tests/fp_race_xml.stderr.exp-mips32-be
drd/tests/fp_race_xml.stderr.exp-mips32-le
drd/tests/fp_race_xml.stderr.exp-solaris
drd/tests/thread_name_xml.stderr.exp
helgrind/tests/filter_xml
helgrind/tests/tc06_two_races_xml.stderr.exp
helgrind/tests/tc06_two_races_xml.stderr.exp-freebsd
memcheck/mc_leakcheck.c
memcheck/mc_malloc_wrappers.c
memcheck/tests/Makefile.am
memcheck/tests/client-msg-as-xml.stderr.exp
memcheck/tests/exit_on_first_error_with_xml.stderr.exp
memcheck/tests/filter_xml
memcheck/tests/freebsd/aligned_alloc_xml.stderr.exp
memcheck/tests/freebsd/delete_sized_mismatch_xml.stderr.exp
memcheck/tests/gone_abrt_xml.stderr.exp
memcheck/tests/gone_abrt_xml.stderr.exp-freebsd
memcheck/tests/gone_abrt_xml.stderr.exp-solaris
memcheck/tests/long_namespace_xml.stderr.exp
memcheck/tests/long_namespace_xml.stderr.exp-freebsd [new file with mode: 0644]
memcheck/tests/mismatches_xml.stderr.exp
memcheck/tests/mismatches_xml.stderr.exp2
memcheck/tests/posix_memalign_xml.stderr.exp
memcheck/tests/realloc_size_zero_xml.stderr.exp
memcheck/tests/sized_aligned_new_delete_misaligned1_xml.stderr.exp
memcheck/tests/sized_aligned_new_delete_misaligned2_xml.stderr.exp
memcheck/tests/sized_aligned_new_delete_misaligned3_xml.stderr.exp
memcheck/tests/threadname_xml.stderr.exp
memcheck/tests/xml1.stderr.exp
memcheck/tests/xml1.stderr.exp-s390x-mvc
none/tests/double_close_range_xml.stderr.exp
none/tests/fdleak_cmsg_xml.stderr.exp
none/tests/fdleak_cmsg_xml.stderr.exp-ppc64le
none/tests/fdleak_creat_xml.stderr.exp
none/tests/fdleak_dup2_xml.stderr.exp
none/tests/fdleak_dup_xml.stderr.exp
none/tests/fdleak_fcntl_xml.stderr.exp
none/tests/fdleak_ipv4_xml.stderr.exp
none/tests/fdleak_ipv4_xml.stderr.exp-nomain
none/tests/fdleak_ipv4_xml.stderr.exp-ppc64le
none/tests/fdleak_open_xml.stderr.exp
none/tests/fdleak_pipe_xml.stderr.exp
none/tests/fdleak_socketpair_xml.stderr.exp
none/tests/fdleak_socketpair_xml.stderr.exp-illumos
none/tests/file_dclose_xml.stderr.exp
none/tests/file_dclose_xml.stderr.exp-nomain
none/tests/socket_close_xml.stderr.exp
none/tests/socket_close_xml.stderr.exp-ppc64le
none/tests/xml-track-fds.stderr.exp

index 2ce919482f771b89bfce9e6c9cae8455374349ba..8dfeefeed3bcf0654fa418932e25a2f5925683c3 100644 (file)
@@ -1116,8 +1116,10 @@ static Bool show_used_suppressions ( void )
       any_supp = True;
    }
 
-   if (VG_(clo_xml))
+   if (VG_(clo_xml)) {
       VG_(printf_xml)("</suppcounts>\n");
+      VG_(printf_xml)("\n");
+   }
 
    return any_supp;
 }
@@ -1134,10 +1136,19 @@ void VG_(show_all_errors) (  Int verbosity, Bool xml, Int show_error_list)
    if (verbosity == 0 && show_error_list == 0)
       return;
 
-   /* If we're printing XML, just show the suppressions and stop. */
+   /* If we're printing XML, show the suppressions, the summary and stop. */
    if (xml) {
       if (show_error_list > 0)
          (void)show_used_suppressions();
+      VG_(printf_xml)("<error_summary>\n"
+                      "  <errors>%u</errors>\n"
+                      "  <error_contexts>%u</error_contexts>\n"
+                      "  <suppressed>%u</suppressed>\n"
+                      "  <suppressed_contexts>%u</suppressed_contexts>\n"
+                      "</error_summary>\n",
+                      n_errs_found, n_err_contexts,
+                      n_errs_suppressed, n_supp_contexts );
+      VG_(printf_xml)("\n");
       return;
    }
 
index c6380d4e0bab1155cd54bcfd0905f131b958f38d..38b064021fb2679798958b1c8dd9327b8ba29ba3 100644 (file)
@@ -498,6 +498,10 @@ static void report_and_quit ( const HChar* report,
                           True,  // stack_usage
                           False, // exited_threads
                           startRegsIN);
+
+   if (VG_(clo_xml)) // After flushing outputs
+      VG_(printf_xml)("</valgrindoutput>\n");
+
    VG_(printf)(
       "\n"
       "Note: see also the FAQ in the source distribution.\n"
@@ -535,9 +539,6 @@ void VG_(assert_fail) ( Bool isCore, const HChar* expr, const HChar* file,
       bugs_to   = VG_(details).bug_reports_to;
    }
 
-   if (VG_(clo_xml))
-      VG_(printf_xml)("</valgrindoutput>\n");
-
    // Treat vg_assert2(0, "foo") specially, as a panicky abort
    if (VG_STREQ(expr, "0")) {
       VG_(printf)("\n%s: %s:%d (%s): the 'impossible' happened.\n",
@@ -567,8 +568,6 @@ __attribute__ ((noreturn))
 static void panic ( const HChar* name, const HChar* report, const HChar* str,
                     const UnwindStartRegs* startRegs )
 {
-   if (VG_(clo_xml))
-      VG_(printf_xml)("</valgrindoutput>\n");
    VG_(printf)("\n%s: the 'impossible' happened:\n   %s\n", name, str);
    report_and_quit(report, startRegs);
 }
index 593889da9d1bdc6980e232f26a734e812d3d50d2..390c0a01aecab9a35d4560ef2a1e8cf0e8b798f3 100644 (file)
@@ -151,11 +151,7 @@ void VG_(print_preamble)(Bool logging_to_fd)
       VG_(printf_xml)("\n");
       VG_(printf_xml)("<valgrindoutput>\n");
       VG_(printf_xml)("\n");
-      /* track-fds introduced some new elements.  */
-      if (VG_(clo_track_fds))
-         VG_(printf_xml)("<protocolversion>5</protocolversion>\n");
-      else
-         VG_(printf_xml)("<protocolversion>4</protocolversion>\n");
+      VG_(printf_xml)("<protocolversion>6</protocolversion>\n");
       VG_(printf_xml)("<protocoltool>%s</protocoltool>\n", VG_(clo_toolname));
       VG_(printf_xml)("\n");
    }
index 4da156fb94e6c52e665dcd345d1a2141aa98fa65..128e4298c18872c11bd74835183abfcf96e5a417 100644 (file)
@@ -2309,9 +2309,7 @@ void shutdown_actions_NORETURN( ThreadId tid,
    // affects what order the messages come.
    //--------------------------------------------------------------
    // First thing in the post-amble is a blank line.
-   if (VG_(clo_xml))
-      VG_(printf_xml)("\n");
-   else if (VG_(clo_verbosity) > 0)
+   if (VG_(clo_verbosity) > 0 && !VG_(clo_xml))
       VG_(message)(Vg_UserMsg, "\n");
 
    if (VG_(clo_xml)) {
@@ -2353,9 +2351,7 @@ void shutdown_actions_NORETURN( ThreadId tid,
    }
 
    if (VG_(clo_xml)) {
-      VG_(printf_xml)("\n");
       VG_(printf_xml)("</valgrindoutput>\n");
-      VG_(printf_xml)("\n");
    }
 
    VG_(sanity_check_general)( True /*include expensive checks*/ );
index 51ba34361645365aa483fb609b30bff884869b77..1623dda5a01099806b2d783e1b8989a6499d5824 100644 (file)
@@ -1982,7 +1982,7 @@ Int print_client_message( ThreadId tid, const HChar *format,
       VG_(get_and_pp_StackTrace)( tid, VG_(clo_backtrace_size) );
    
    if (VG_(clo_xml))
-      VG_(printf_xml)( "</clientmsg>\n" );
+      VG_(printf_xml)( "</clientmsg>\n\n" );
 
    return count;
 }
diff --git a/docs/internals/xml-output-protocol6.txt b/docs/internals/xml-output-protocol6.txt
new file mode 100644 (file)
index 0000000..071ed11
--- /dev/null
@@ -0,0 +1,246 @@
+====================================================================
+
+11 May 2025
+
+Protocol 6 is now always used (unlike protocol 5 which was only
+used with--track-fds). The main difference is that the xml output
+now contains error summaries.
+
+====================================================================
+
+
+Global error summary
+--------------------
+
+Previously, the non-xml output contained a summary of errors and
+suppressions used, like this:
+
+==3166== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 3 from 3)
+
+This was not included in the xml output. Starting with protocol 6 it will
+be included. The above example would produce
+
+<error_summary>
+ <errors>1</errors>
+ <error_contexts>1</error_contexts>
+ <suppressed>3</suppressed>
+ <suppressed_contexts>3</suppressed_contexts>
+</error_summary>
+
+Memcheck heap and leak summaries
+--------------------------------
+
+Memcheck produces two summaries that were not generated for XML.
+These are the heap summary, such as
+
+==80874== HEAP SUMMARY:
+==80874==     in use at exit: 720 bytes in 5 blocks
+==80874==   total heap usage: 5 allocs, 0 frees, 720 bytes allocated
+
+This now generates with --xml=yes
+
+<heap_summary>
+  <memory_in_use_at_exit>
+    <bytes>720</bytes>
+    <blocks>5</blocks>
+  </memory_in_use_at_exit>
+  <total_heap_usage>
+    <allocs>5</allocs>
+    <frees>0</frees>
+    <bytes_allocated>720</bytes_allocated>
+  </total_heap_usage>
+</heap_summary>
+
+<all_heap_blocks_freed>false</all_heap_blocks_freed>
+
+The final summary is the leak summary. An example of the non-xml output
+is as follows:
+
+==24152== LEAK SUMMARY:
+==24152==    definitely lost: 48 bytes in 3 blocks
+==24152==    indirectly lost: 32 bytes in 2 blocks
+==24152==      possibly lost: 96 bytes in 6 blocks
+==24152==    still reachable: 64 bytes in 4 blocks
+==24152==         suppressed: 0 bytes in 0 blocks
+
+The example above now produces with xml output
+
+<leak_summary>
+  <definitely_lost>
+    <bytes>48</bytes>
+    <in_blocks>3</in_blocks>
+  </definitely_lost>
+  <indirectly_lost>
+    <bytes>32</bytes>
+    <in_blocks>2</in_blocks>
+  </indirectly_lost>
+  <possibly_lost>
+    <bytes>96</bytes>
+    <in_blocks>6</in_blocks>
+  </possibly_lost>
+  <still_reachable>
+    <bytes>64</bytes>
+    <in_blocks>4</in_blocks>
+  </still_reachable>
+  <suppressed>
+    <bytes>0</bytes>
+    <in_blocks>0</in_blocks>
+  </suppressed>
+</leak_summary>
+
+
+COMMON ELEMENTS
+---------------
+BYTES and BLOCKS elements are common to the HEAP and LEAK summaries.
+
+The BYTES element is
+
+* <bytes>INT</bytes>
+
+This field indicates the number of bytes of memory that are not deallocated
+at exit or user leak check.
+
+The BLOCKS element is
+
+* <blocks>INT</blocks>
+
+The block fields contains the number of blocks that have not been deallocated
+at exit or user leak check.
+
+
+HEAP SUMMARY
+------------
+
+The heap summary is contained in a heap_summary element. It contains the
+following sub-elements:
+
+* <memory_in_use_at_exit>BYTES AND BLOCKS ELEMENTS</memory_in_use_at_exit>
+
+The second sub-element of heap_summary indicates the total heap usage.
+
+* <total_heap_usage>ALLOCS FREES AND BYTES ELEMENTS</total_heap_usage>
+
+The ALLOCS element is
+
+* <allocs>INT</allocs>
+
+This indicates the total number of allocations during the program run.
+
+The FREES element is
+
+* <frees>INT</frees>
+
+This indicates the total number of deallocation during the program run.
+
+The BYTES element is
+
+* <bytes_allocated>INT</bytes_allocated>
+
+This indicates the total number of bytes allocated during the program run.
+
+
+ERROR SUMMARY
+-------------
+
+The error summary is contained in an error_summary element. It contains the
+following sub-elements:
+
+* <errors>INT</errors>
+
+This field indicates the number of unsuppressed errors that were encountered.
+
+* <error_contexts>INT</error_contexts>
+
+This field indicated the number of unique unsuppressed error contexts.
+
+*  <suppressed>INT</suppressed>
+
+This is the number of errors that were suppressed.
+
+* <suppressed_contexts>INT</suppressed_contexts>
+
+This is the number of unique error contexts used by the suppressions.
+
+LEAK SUMMARY
+------------
+
+The leak summary is contained in a leak_summary element.
+
+The leak summary sub-elements are:
+
+* <definitely_lost>BYTES AND BLOCKS ELEMENTS</definitely_lost>
+
+Memory that was definitely lost.
+
+* <indirectly_lost>BYTES AND BLOCKS ELEMENTS</indirectly_lost>
+
+Memory that was indirectly lost.
+
+* <possibly_lost>BYTES AND BLOCKS ELEMENTS</possibly_lost>
+
+Memory that was lost but memcheck cannot determine if it is
+definitely lost or still reachable.
+
+* <still_reachable> BYTES BLOCKS AND (optional) REACHABLE_HEURISTIC ELEMENTS</still_reachable>
+
+Memory that was still reachable at exit or the user leak check.
+
+If the  --leak-check-heuristics= option was used then the still_reachable element
+may contain further details on the memory and kind of heuristic that the block(s).
+correspond to.
+
+The REACHABLE_HEURISTIC format is
+    <reachable_heuristic>
+      <kind>KIND</kind>
+      <bytes>INT</bytes>
+      <blocks>INT</blocks>
+    </reachable_heuristic>
+
+KIND is one of:
+   none, stdstring, length64, newarray, multipleinheritance
+
+*  <suppressed>BYTES AND BLOCK ELEMENTS</suppressed>
+
+Information concerning the amount leaked that was suppressed.
+
+
+Addendum
+--------
+
+Unfortunately the xml-output-protocol documents were not updated
+to reflect some of the memcheck error conditions that were added.
+This omission is being rectified here.
+
+* memcheck error element kind
+
+  Added on 2023-03-10
+
+  ReallocSizeZero
+
+    realloc() called with a size of zero.
+
+  Added on 2023-09-02
+
+  InvalidSizeAndAlignment
+
+    an aligned allocation was requested with an invalid size such
+    as a non-multiple of the alignment
+
+  InvalidAlignment
+
+    an alignment was used that is not allowed such as a non-power
+    of two
+
+  InvalidSize
+
+    a size of zero was used with an aligned allocation
+
+  MismatchedAllocateDeallocateSize
+
+    the size used for a sized deallocation does not match the
+    size of the allocated block
+
+  MismatchedAllocateDeallocateAlignment
+
+    the alignment used for a deallocation does not match the
+    alignment requested when the block was allocated
index b34c787e8ebd07e0e7339475ff124fcae0e0ddc7..702926c180d5e8798b770e486ccd84d56807ff7e 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
 </error>
 
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -323,5 +322,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 888084b410c7d9a58e25315d1f9ade7f3600d96b..7688aaae743fee99304ed3eb1b957d2463ef3c18 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -287,7 +287,6 @@ uint64_t
   </stack>
   </trace>
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -298,5 +297,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 13c7a9e5a32526008363e1c79c356804d11add63..057f96054a459206c71399893445d427dbd2276b 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -287,7 +287,6 @@ uint64_t
   </stack>
   </trace>
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -298,5 +297,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 8a62b6c460fbdad75542375fc117c10c8f982a11..6f4e8ff4a996659d1e4dd533a6495ea88b4edf09 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -251,7 +251,6 @@ uint64_t
   </stack>
   </trace>
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -262,5 +261,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 2af2455ca07ca11e97d10ddfb196fd48403a8511..146d6574d2dc06732742f95cdced36da632f53fb 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -299,7 +299,6 @@ uint64_t
   </stack>
   </trace>
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -310,5 +309,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 9fc793a41879670e67878872b9597ace1beac5d4..ef85978354f7a47bb2716f9a84dd0a250c200d99 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -323,7 +323,6 @@ uint64_t
   </stack>
   </trace>
 Done.
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -334,5 +333,6 @@ Done.
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 8539f75c77a0e22774df35c0f6108ff0c26ec971..c6150b8995afbd1abd014328f700f126f8614012 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -231,5 +231,6 @@ destroy a barrier that was never initialised
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 24ac7fe952044a8c3a873aec19d491d8142bec8f..460d7f77a44702a5be2632fd38b15b46a9899c2e 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -251,7 +251,6 @@ destroy a barrier that was never initialised
   </first_observed_at>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -282,5 +281,6 @@ destroy a barrier that was never initialised
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 1b7db90d3e0b95847838cdcab2ccb3e252ca2b52..26ee071ec145fb28bdb1e089a0a9dec162761806 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -209,5 +209,6 @@ destroy a barrier that was never initialised
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index a47cd603b720ce97804975fb2e0f4e766126ad30..14e2fcf457de40fc5c750ebdfb733ef410604adc 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -229,7 +229,6 @@ destroy a barrier that was never initialised
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -260,5 +259,6 @@ destroy a barrier that was never initialised
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index acb965656e9a6299f2b5d8a2ee4e3d5e20ac9e37..59a0c89d5101cda7ece51c0e05233cf58ba28c02 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -276,7 +276,6 @@ destroy a barrier that was never initialised
   </first_observed_at>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -311,5 +310,6 @@ destroy a barrier that was never initialised
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 05ffe71e521d3bf0df9545d9c85a86afe8460cc0..17409062bea6289bcda2d35cf58dd44b2a0f49c1 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -81,7 +81,6 @@
 
   <trace><text>drd_post_thread_join joiner = 1, joinee = 2, new vc: [ ... ]</text></trace>
   <trace><text>drd_thread_finished tid = 1</text></trace>
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 2960a39077def1590a34178002157c84f11a8313..d5bfdd99fefa4df5944165cbf07b3df4dbca293a 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index a0edb5e8945a5ec777b64e73d93d9f7cb55aa517..d6703d64154053ffd3df6c8170718d88cd7ecb23 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 05ffe71e521d3bf0df9545d9c85a86afe8460cc0..2063aa4f0e9cbb3ca17db65d9ff5982ad92d6c7b 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
index 36b53604e8afdc877504b5dcf41028b8f0cd669b..0e47f5fff4a32a32c47380036b34e4eb22c037dc 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>drd</protocoltool>
 
 <preamble>
@@ -388,7 +388,6 @@ thread_func instance 10
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -439,5 +438,6 @@ thread_func instance 10
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index cc0b71ea07a4105d35273d7d3cf4cee84e38b2f4..e9475f04a216e8a953af5dfb9c38e9d014c663d3 100755 (executable)
@@ -40,7 +40,8 @@ my %patterns = (
     "0x([0-9a-zA-Z]+)"      => "........",
     "Using Valgrind-([^\\s]*)"    => "X.Y.X",
     "Copyright \\(C\\) ([0-9]{4}-[0-9]{4}).*" => "XXXX-YYYY",
-    '<fn>pthread_.*(@\*)</fn>'  => ""
+    '<fn>pthread_.*(@\*)</fn>'                => "",
+    "<suppressed_contexts>(.*)</suppressed_contexts>" => "..."
 );
 
 # List of XML sections to be ignored.
index a442a285e331360d266bc49d27b06e32d62d7a84..800ef543f43f8d257ae5cba960d7fe2de846e671 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>helgrind</protocoltool>
 
 <preamble>
   <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>
+  <errors>4</errors>
+  <error_contexts>4</error_contexts>
+  <suppressed>7</suppressed>
+  <suppressed_contexts>...</suppressed_contexts>
+</error_summary>
 
+</valgrindoutput>
index 65a79a759b0a56d148c718ca4507799bb891c101..724649cb6fa65d9e38eceb364cf0aad47f074c56 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>helgrind</protocoltool>
 
 <preamble>
   <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>
+  <errors>4</errors>
+  <error_contexts>4</error_contexts>
+  <suppressed>7</suppressed>
+  <suppressed_contexts>...</suppressed_contexts>
+</error_summary>
 
+</valgrindoutput>
index 83a2b74e2a1e5e6ed3e704998ea72577b5168f5b..3099a04dd93069bdd8313430a56e77caf0593daf 100644 (file)
@@ -1722,7 +1722,9 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp)
       VG_(XT_delete)(leak_xt);
    }
 
-   if (VG_(clo_verbosity) > 0 && !VG_(clo_xml)) {
+   UInt (*umsg_or_xml)( const HChar *, ... )
+     = VG_(clo_xml) ? VG_(printf_xml) : VG_(umsg);
+   if (VG_(clo_verbosity) > 0) {
       HChar d_bytes[31];
       HChar d_blocks[31];
 #     define DBY(new,old) \
@@ -1732,23 +1734,42 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp)
       MC_(snprintf_delta) (d_blocks, sizeof(d_blocks), (new), (old), \
                            lcp->deltamode)
 
-      VG_(umsg)("LEAK SUMMARY:\n");
-      VG_(umsg)("   definitely lost: %'lu%s bytes in %'lu%s blocks\n",
+      umsg_or_xml(VG_(clo_xml) ? "<leak_summary>\n" : "LEAK SUMMARY:\n");
+      umsg_or_xml(VG_(clo_xml) ?
+                  "  <definitely_lost>\n"
+                  "    <bytes>%'lu%s</bytes>\n"
+                  "    <blocks>%'lu%s</blocks>\n"
+                  "  </definitely_lost>\n" :
+                  "   definitely lost: %'lu%s bytes in %'lu%s blocks\n",
                 MC_(bytes_leaked), 
                 DBY (MC_(bytes_leaked), old_bytes_leaked),
                 MC_(blocks_leaked),
                 DBL (MC_(blocks_leaked), old_blocks_leaked));
-      VG_(umsg)("   indirectly lost: %'lu%s bytes in %'lu%s blocks\n",
+      umsg_or_xml(VG_(clo_xml) ?
+                  "  <indirectly_lost>\n"
+                  "    <bytes>%'lu%s</bytes>\n"
+                  "    <blocks>%'lu%s</blocks>\n"
+                  "  </indirectly_lost>\n" :
+                  "   indirectly lost: %'lu%s bytes in %'lu%s blocks\n",
                 MC_(bytes_indirect), 
                 DBY (MC_(bytes_indirect), old_bytes_indirect),
                 MC_(blocks_indirect),
                 DBL (MC_(blocks_indirect), old_blocks_indirect));
-      VG_(umsg)("     possibly lost: %'lu%s bytes in %'lu%s blocks\n",
+      umsg_or_xml(VG_(clo_xml) ?
+                  "  <possibly_lost>\n"
+                  "    <bytes>%'lu%s</bytes>\n"
+                  "    <blocks>%'lu%s</blocks>\n"
+                  "  </possibly_lost>\n" :
+                  "     possibly lost: %'lu%s bytes in %'lu%s blocks\n",
                 MC_(bytes_dubious), 
                 DBY (MC_(bytes_dubious), old_bytes_dubious), 
                 MC_(blocks_dubious),
                 DBL (MC_(blocks_dubious), old_blocks_dubious));
-      VG_(umsg)("   still reachable: %'lu%s bytes in %'lu%s blocks\n",
+      umsg_or_xml(VG_(clo_xml) ?
+                  "  <still_reachable>\n"
+                  "    <bytes>%'lu%s</bytes>\n"
+                  "    <blocks>%'lu%s</blocks>\n" :
+                  "   still reachable: %'lu%s bytes in %'lu%s blocks\n",
                 MC_(bytes_reachable), 
                 DBY (MC_(bytes_reachable), old_bytes_reachable), 
                 MC_(blocks_reachable),
@@ -1756,15 +1777,21 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp)
       for (i = 0; i < N_LEAK_CHECK_HEURISTICS; i++)
          if (old_blocks_heuristically_reachable[i] > 0 
              || MC_(blocks_heuristically_reachable)[i] > 0) {
-            VG_(umsg)("                      of which "
+            umsg_or_xml(VG_(clo_xml) ? "" : "                      of which "
                       "reachable via heuristic:\n");
             break;
          }
       for (i = 0; i < N_LEAK_CHECK_HEURISTICS; i++)
          if (old_blocks_heuristically_reachable[i] > 0 
              || MC_(blocks_heuristically_reachable)[i] > 0)
-            VG_(umsg)("                        %-19s: "
-                      "%'lu%s bytes in %'lu%s blocks\n",
+            umsg_or_xml(VG_(clo_xml) ?
+                        "    <reachable_heuristic>\n"
+                        "      <kind>%ls</kind>\n"
+                        "      <bytes>%'lu%s</bytes>\n"
+                        "      <blocks>%'lu%s</blocks>\n"
+                        "    </reachable_heuristic>\n" :
+                        "                        %-19s: "
+                        "%'lu%s bytes in %'lu%s blocks\n",
                       pp_heuristic(i),
                       MC_(bytes_heuristically_reachable)[i], 
                       DBY (MC_(bytes_heuristically_reachable)[i],
@@ -1772,32 +1799,41 @@ static void print_results(ThreadId tid, LeakCheckParams* lcp)
                       MC_(blocks_heuristically_reachable)[i],
                       DBL (MC_(blocks_heuristically_reachable)[i],
                            old_blocks_heuristically_reachable[i]));
-      VG_(umsg)("        suppressed: %'lu%s bytes in %'lu%s blocks\n",
-                MC_(bytes_suppressed), 
-                DBY (MC_(bytes_suppressed), old_bytes_suppressed), 
+      if (VG_(clo_xml) && MC_(bytes_reachable)) {
+         umsg_or_xml("  </still_reachable>\n");
+      }
+      umsg_or_xml(VG_(clo_xml) ?
+                  "  <suppressed>\n"
+                  "    <bytes>%'lu%s</bytes>\n"
+                  "    <blocks>%'lu%s</blocks>\n"
+                  "  </suppressed>\n" :
+                  "        suppressed: %'lu%s bytes in %'lu%s blocks\n",
+                MC_(bytes_suppressed),
+                DBY (MC_(bytes_suppressed), old_bytes_suppressed),
                 MC_(blocks_suppressed),
                 DBL (MC_(blocks_suppressed), old_blocks_suppressed));
       if (lcp->mode != LC_Full &&
           (MC_(blocks_leaked) + MC_(blocks_indirect) +
            MC_(blocks_dubious) + MC_(blocks_reachable)) > 0) {
          if (lcp->requested_by_monitor_command)
-            VG_(umsg)("To see details of leaked memory, "
-                      "give 'full' arg to leak_check\n");
+            umsg_or_xml(VG_(clo_xml) ? "" : "To see details of leaked memory, "
+                        "give 'full' arg to leak_check\n");
          else
-            VG_(umsg)("Rerun with --leak-check=full to see details "
-                      "of leaked memory\n");
+            umsg_or_xml(VG_(clo_xml) ? "" : "Rerun with --leak-check=full to "
+                        "see details of leaked memory\n");
       }
       if (lcp->mode == LC_Full &&
           MC_(blocks_reachable) > 0 && !RiS(Reachable,lcp->show_leak_kinds)) {
-         VG_(umsg)("Reachable blocks (those to which a pointer "
-                   "was found) are not shown.\n");
+         umsg_or_xml(VG_(clo_xml) ? "" : "Reachable blocks (those to which a "
+                     "pointer was found) are not shown.\n");
          if (lcp->requested_by_monitor_command)
-            VG_(umsg)("To see them, add 'reachable any' args to leak_check\n");
+            umsg_or_xml(VG_(clo_xml) ? "" : "To see them, add 'reachable any' "
+                        "args to leak_check\n");
          else
-            VG_(umsg)("To see them, rerun with: --leak-check=full "
-                      "--show-leak-kinds=all\n");
+            umsg_or_xml(VG_(clo_xml) ? "" : "To see them, rerun with: "
+                        "--leak-check=full --show-leak-kinds=all\n");
       }
-      VG_(umsg)("\n");
+      umsg_or_xml(VG_(clo_xml) ? "</leak_summary>\n\n" : "\n");
       #undef DBL
       #undef DBY
    }
@@ -2056,11 +2092,17 @@ void MC_(detect_memory_leaks) ( ThreadId tid, LeakCheckParams* lcp)
          VG_(OSetGen_Destroy) (lr_table);
          lr_table = NULL;
       }
-      if (VG_(clo_verbosity) >= 1 && !VG_(clo_xml)) {
-         VG_(umsg)("All heap blocks were freed -- no leaks are possible\n");
-         VG_(umsg)("\n");
+      if (VG_(clo_verbosity) >= 1) {
+         if (!VG_(clo_xml)) {
+            VG_(umsg)("All heap blocks were freed -- no leaks are possible\n");
+            VG_(umsg)("\n");
+         } else
+            VG_(printf_xml)("<all_heap_blocks_freed>true</all_heap_blocks_freed>\n\n");
       }
       return;
+   } else {
+      if (VG_(clo_verbosity) >= 1 && VG_(clo_xml))
+         VG_(printf_xml)("<all_heap_blocks_freed>false</all_heap_blocks_freed>\n\n");
    }
 
    // Sanity check -- make sure they don't overlap.  One exception is that
@@ -2301,4 +2343,3 @@ void MC_(who_points_at) ( Addr address, SizeT szB)
 /*--------------------------------------------------------------------*/
 /*--- end                                                          ---*/
 /*--------------------------------------------------------------------*/
-
index 48f26902cde327de517c7c136073703e1da98034..584afa50ea926b50f72af85b4ed773a3d87559f1 100644 (file)
@@ -1229,8 +1229,6 @@ void MC_(print_malloc_stats) ( void )
    
    if (VG_(clo_verbosity) == 0)
       return;
-   if (VG_(clo_xml))
-      return;
 
    /* Count memory still in use. */
    VG_(HT_ResetIter)(MC_(malloc_list));
@@ -1239,6 +1237,27 @@ void MC_(print_malloc_stats) ( void )
       nbytes += (ULong)mc->szB;
    }
 
+   if (VG_(clo_xml)) {
+     VG_(printf_xml)(
+        "<heap_summary>\n"
+        "  <memory_in_use_at_exit>\n"
+        "    <bytes>%'llu</bytes>\n"
+        "    <blocks>%'lu</blocks>\n"
+        "  </memory_in_use_at_exit>\n"
+        "  <total_heap_usage>\n"
+        "    <allocs>%'lu</allocs>\n"
+        "    <frees>%'lu</frees>\n"
+        "    <bytes_allocated>%'llu</bytes_allocated>\n"
+        "  </total_heap_usage>\n"
+        "</heap_summary>\n"
+        "\n",
+        nbytes, nblocks,
+        cmalloc_n_mallocs,
+        cmalloc_n_frees, cmalloc_bs_mallocd
+     );
+     return;
+   }
+
    VG_(umsg)(
       "HEAP SUMMARY:\n"
       "    in use at exit: %'llu bytes in %'lu blocks\n"
index 928ac16e6ae57e182d4f5f872ee944775668898a..db6cd1786314f13f6997ea2d6d16add7bebc6b7f 100644 (file)
@@ -257,7 +257,7 @@ EXTRA_DIST = \
        leak-segv-jmp.vgtest leak-segv-jmp.stderr.exp \
        lks.vgtest lks.stdout.exp lks.supp lks.stderr.exp \
        long_namespace_xml.vgtest long_namespace_xml.stdout.exp \
-       long_namespace_xml.stderr.exp \
+       long_namespace_xml.stderr.exp long_namespace_xml.stderr.exp-freebsd \
        long-supps.vgtest long-supps.stderr.exp long-supps.supp \
        mallinfo.stderr.exp mallinfo.vgtest \
        malloc_free_fill.vgtest \
index af97c61ab4501b3423367622cf13499c4ac92abf..609f5826b43bfe39a335cfd29923627704d3e6b8 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
 </errorcounts>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 3a02ca5323624bce0b2ceeddb3f6645dda2390c4..6061fc19a49e34f7e0adc90e3992c21f0e958bb8 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
index 9244706c369e9badbab67862ecc9a01961e784f7..2c63cddbcbeba40563b98c710d7cbefa7790e7e6 100755 (executable)
@@ -22,13 +22,20 @@ sed "s/operator delete\[\](void\*, unsigned int/operator delete[](void*, unsigne
 sed "s/4294967295/18446744073709551615/" |
 sed "s/malloc_zone_memalign/posix_memalign/" |
 perl    -p -e "s/(m_replacemalloc\/)?vg_replace_malloc.c/vg_replace_malloc.c/" |
+perl -0 -p -e  "s/<heap_summary>.*<\/heap_summary>/<heap_summary>...<\/heap_summary>/s" |
+perl -0 -p -e  "s/<error_summary>.*<\/error_summary>/<error_summary>...<\/error_summary>/s" |
+perl -0 -p -e  "s/<leak_summary>.*<\/leak_summary>/<leak_summary>...<\/leak_summary>/s" |
 perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcounts>/s" |
 perl    -p -e "s/<time>.*<\/time>/<time>...<\/time>/s" |
 perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" |
+perl -0 -p -e "s/<suppressed>.*<\/suppressed>/<suppressed>...<\/suppressed>/s" |
+perl -0 -p -e "s/<suppressed_contexts>.*<\/suppressed_contexts>/<suppressed_from>...<\/suppressed_from>/s" |
 
 # Remove stack traces for Syscall param errors (see filter_stderr for more).  
 # Chops everything within <stack>...</stack>.
-perl -p -0 -e 's/(<what>Syscall param[^\n]*\n)([^\n]*(stack|frame|ip|obj|fn|dir|file|line)[^\n]*\n)+/$1/gs'
+perl -p -0 -e 's/(<what>Syscall param[^\n]*\n)([^\n]*(stack|frame|ip|obj|fn|dir|file|line)[^\n]*\n)+/$1/gs' |
+
+sed "/<all_heap_blocks_freed>/,+1d"
 
 # Collected wisdom re Perl magic incantation:
 #
index 13066ae53795097df5461c4b37ba20d70d67c550..70b85b8d5f2e7ab8af5c0008ce7cca961660377b 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
@@ -97,5 +98,6 @@
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 55225906f9cdcf08f72c0842e3373b600ae30073..f63cdadb903bb9bd43fd177092e6b13b570b1790 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index b0faf73bdcb2d512c2a2c9363ab72e98dd26870d..9f7b1f52fc3885635b5f314238244a1575ddc07b 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -48,16 +48,18 @@ aborting ...
   </stack>
 </fatal_signal>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
 </errorcounts>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index c97485faf47d088473996cae219a200f2a35b950..04643bbffaf838ebe9ae547473d57cdd4ee0e5ea 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -48,16 +48,20 @@ aborting ...
   </stack>
 </fatal_signal>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
+<leak_summary>...</leak_summary>
+
 <errorcounts>
 </errorcounts>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index a6c88df27e36e1f92daa468437f707f3984e6c3a..1c307433fa4d8f4b24ca02965906cbf1f5df0959 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -50,16 +50,18 @@ aborting ...
   </stack>
 </fatal_signal>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
 </errorcounts>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 775fac002bf3e1a6333217b46be76acd06bbc2d9..52299659215f534b2ff6b3da6e3020b3b1212189 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
@@ -95,5 +96,6 @@
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
diff --git a/memcheck/tests/long_namespace_xml.stderr.exp-freebsd b/memcheck/tests/long_namespace_xml.stderr.exp-freebsd
new file mode 100644 (file)
index 0000000..e4a9b08
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+
+<valgrindoutput>
+
+<protocolversion>6</protocolversion>
+<protocoltool>memcheck</protocoltool>
+
+<preamble>
+  <line>...</line>
+  <line>...</line>
+  <line>...</line>
+  <line>...</line>
+</preamble>
+
+<pid>...</pid>
+<ppid>...</ppid>
+<tool>memcheck</tool>
+
+<args>
+  <vargv>...</vargv>
+  <argv>
+    <exe>./long_namespace_xml</exe>
+  </argv>
+</args>
+
+<status>
+  <state>RUNNING</state>
+  <time>...</time>
+</status>
+
+<error>
+  <unique>0x........</unique>
+  <tid>...</tid>
+  <kind>InvalidWrite</kind>
+  <what>Invalid write of size 1</what>
+  <stack>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>_ZN5304abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz5304ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ1fEv</fn>
+      <dir>...</dir>
+      <file>long_namespace_xml.cpp</file>
+      <line>...</line>
+    </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>main</fn>
+      <dir>...</dir>
+      <file>long_namespace_xml.cpp</file>
+      <line>...</line>
+    </frame>
+  </stack>
+  <auxwhat>Address 0x........ is 1 bytes after a block of size 4 alloc'd</auxwhat>
+  <stack>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>malloc</fn>
+      <dir>...</dir>
+      <file>vg_replace_malloc.c</file>
+      <line>...</line>
+    </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>_ZN5304abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz5304ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ1fEv</fn>
+      <dir>...</dir>
+      <file>long_namespace_xml.cpp</file>
+      <line>...</line>
+    </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>main</fn>
+      <dir>...</dir>
+      <file>long_namespace_xml.cpp</file>
+      <line>...</line>
+    </frame>
+  </stack>
+</error>
+
+<status>
+  <state>FINISHED</state>
+  <time>...</time>
+</status>
+
+<heap_summary>...</heap_summary>
+
+<leak_summary>...</leak_summary>
+
+<errorcounts>
+  <pair>
+    <count>...</count>
+    <unique>0x........</unique>
+  </pair>
+</errorcounts>
+
+<suppcounts>...</suppcounts>
+
+<error_summary>...</error_summary>
+
+</valgrindoutput>
index 95c77bf3c29d316000b132d166a8d2201a52f9fc..20e9a7ead45ed8cbdeb8d50154137681f3bbb432 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 17972cd066730c89f5daf4cf78a8915b6ba0c565..19eb022f37bad4dc01f5682a1aac09a74d622463 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index ad30c3d105232696e74268deb082058dc9a57780..ce9ded32066c7baf3d1ce9781aa7a1fafb96f7e8 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 3b6450ff4efbc8a4e5a3a35ecf4897eb1944aaf1..db198b7ce11d87809ff649e76c8bef68acae8b6e 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -72,7 +72,6 @@
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -85,6 +84,4 @@
   </pair>
 </errorcounts>
 
-
 </valgrindoutput>
-
index b8e230165c8ebca70147482e25bdb51e255ca17f..5a2602b466eaf35fb013790c311930dade5cd6ea 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 321ed1dce97af286c702f94aaf1a421cebc87a82..a785bd23696b1f5492830faa16187d94fcc9e4c5 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -58,6 +58,7 @@
   <text>new/new[] aligned failed and should throw an exception, but Valgrind
   </text>
 </clientmsg>
+
 <clientmsg>
   <tid>...</tid>
   <text>   cannot throw exceptions and so is aborting instead.  Sorry.
@@ -95,6 +96,8 @@
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index f2fe0134bc1b0eed2adb33c0663736fe34b67b22..f7c23306ff8b9acf609552026a91b0c500ff3ed4 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
@@ -58,6 +58,7 @@
   <text>new/new[] aligned failed and should throw an exception, but Valgrind
   </text>
 </clientmsg>
+
 <clientmsg>
   <tid>...</tid>
   <text>   cannot throw exceptions and so is aborting instead.  Sorry.
@@ -95,6 +96,8 @@
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 3f9e593e2fa3f05ac87875232816c57cd7393d6f..1671b50a262ee1efd17ac7ae120b3643ca316432 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   <text>I am in child_fn_1
   </text>
 </clientmsg>
+
 <error>
   <unique>0x........</unique>
   <tid>...</tid>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
+<leak_summary>...</leak_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index 3eba805995989e4031d2eddf11319bd98a753a92..8ff61a5312bc20ea4b4f5b3d8408644d199f0bbc 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   <what>Syscall param exit(status) contains uninitialised byte(s)</what>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <error>
   <unique>0x........</unique>
   <tid>...</tid>
   </stack>
 </error>
 
+<leak_summary>...</leak_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index e1abac28a12f11bc235ccaf4d65fc8c39ab54853..d7bf2095e97efac1aa9d9d52703ff08f72d38553 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>4</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>memcheck</protocoltool>
 
 <preamble>
   <what>Syscall param exit(status) contains uninitialised byte(s)</what>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
+<heap_summary>...</heap_summary>
+
 <error>
   <unique>0x........</unique>
   <tid>...</tid>
   </stack>
 </error>
 
+<leak_summary>...</leak_summary>
+
 <errorcounts>
   <pair>
     <count>...</count>
 
 <suppcounts>...</suppcounts>
 
-</valgrindoutput>
+<error_summary>...</error_summary>
 
+</valgrindoutput>
index c21a2bcdd0d4830e025f31e713c80d44f271d98b..22027dc1a5f42366c5ebf8ed8c6018b749eb9366 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -123,7 +123,6 @@ Double closing range (5, 7).
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -140,6 +139,4 @@ Double closing range (5, 7).
   </pair>
 </errorcounts>
 
-
 </valgrindoutput>
-
index 39b739be7074f310a7d5f0eecb01aabb5e0e996c..2fbb664b434f0819996e1703da8704a3a7c3c716 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -37,7 +37,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
   <what>...</what>
 </error>
 
-
 </valgrindoutput>
-
index 6294094eb92e83cfe18cc5ba4bef55205f621ca8..1ab6c6fe0fc625d327eafa6512e81a3cf7d07355 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
index fbdc261d6169489ff95a60a97676d49cda77519e..5c585a2249ea6fdf719174cfd3e66b37044ecdb0 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -88,6 +87,4 @@
   <what>...</what>
 </error>
 
-
 </valgrindoutput>
-
index 318093bd3959a918fe805525f98fbd6711ad2c7b..de6ed78330d824fbd67e03f8abfdce226a798667 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
   <what>...</what>
 </error>
 
-
 </valgrindoutput>
-
index 3fc08d342ed825c76a8a82193a568649b8dad1a1..f56d8376733a2a4b130ae545e7ad36bb70143b65 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
   <what>...</what>
 </error>
 
-
 </valgrindoutput>
-
index 4f33dc9e36711caec4867873d831013b686efded..81605e2ae493d2fdbe40eb063ae8680596bfb54b 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
   <what>...</what>
 </error>
 
-
 </valgrindoutput>
-
index 38797041a1f2dbd484f2c988a46921e1261691a0..e55277422d1263758bdef821bad69b9eed2dc76c 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 <suppcounts>
 </suppcounts>
 
-</valgrindoutput>
+<error_summary>
+  <errors>2</errors>
+  <error_contexts>2</error_contexts>
+  <suppressed>0</suppressed>
+  <suppressed_contexts>0</suppressed_contexts>
+</error_summary>
 
+</valgrindoutput>
index 8eaa4f20fa968342ea82e3b29c86ec0c0ebbcf45..e55277422d1263758bdef821bad69b9eed2dc76c 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
       <file>fdleak_ipv4.c</file>
       <line>70</line>
     </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>main</fn>
+      <dir>...</dir>
+      <file>fdleak_ipv4.c</file>
+      <line>90</line>
+    </frame>
   </stack>
   <auxwhat>Previously closed</auxwhat>
   <stack>
       <file>fdleak_ipv4.c</file>
       <line>69</line>
     </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>main</fn>
+      <dir>...</dir>
+      <file>fdleak_ipv4.c</file>
+      <line>90</line>
+    </frame>
   </stack>
   <auxwhat>Originally opened</auxwhat>
   <stack>
       <file>fdleak_ipv4.c</file>
       <line>68</line>
     </frame>
+    <frame>
+      <ip>0x........</ip>
+      <obj>...</obj>
+      <fn>main</fn>
+      <dir>...</dir>
+      <file>fdleak_ipv4.c</file>
+      <line>90</line>
+    </frame>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 <suppcounts>
 </suppcounts>
 
-</valgrindoutput>
+<error_summary>
+  <errors>2</errors>
+  <error_contexts>2</error_contexts>
+  <suppressed>0</suppressed>
+  <suppressed_contexts>0</suppressed_contexts>
+</error_summary>
 
+</valgrindoutput>
index df413b62895cf7d941214d78b2f4eeef35720cde..27c304f47a7d23cb8ac044853cf01a938467188c 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 <suppcounts>
 </suppcounts>
 
-</valgrindoutput>
+<error_summary>
+  <errors>2</errors>
+  <error_contexts>2</error_contexts>
+  <suppressed>0</suppressed>
+  <suppressed_contexts>0</suppressed_contexts>
+</error_summary>
 
+</valgrindoutput>
index 2cde2d190448aa136ba72de18e76f7e5b8b14797..5e67f9d25bb907204f9522fc6cfde8b5888ee7e8 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -61,6 +60,4 @@
   </stack>
 </error>
 
-
 </valgrindoutput>
-
index 2abb5a2660cffe83f18d3841d4329d72a5bafb0c..2fb93ce9060043aefd6e7409b2e175d9d04f7782 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -78,6 +77,4 @@
   </stack>
 </error>
 
-
 </valgrindoutput>
-
index bdd31860d8293ce8e39b5b047f8a5de03f7b4de6..6d2e2b41b4394c548bf69418417ee30b5806f694 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -78,6 +77,4 @@
   </stack>
 </error>
 
-
 </valgrindoutput>
-
index f01a80440a00e01430029936e995a1dff28b9085..8b578188e913a0db390627b4f0d261b5a8d81c39 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -36,7 +36,6 @@
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -78,6 +77,4 @@
   </stack>
 </error>
 
-
 </valgrindoutput>
-
index 4e4bd773cbfd0e3be40c680a420a4fe563f3ffa5..c6a25d510fe57d910048995183b47cd4e459bbb3 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -96,7 +96,6 @@ time passes and we close 3 again
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -109,6 +108,4 @@ time passes and we close 3 again
   </pair>
 </errorcounts>
 
-
 </valgrindoutput>
-
index b0cfc10c5fd5466f7e056c9fc949ccd5007239ad..6c5406c0320743a37a543e9f6a4dc5f200142688 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
index 69a2c514ec5d36674f307fddbe13dcb07feb224c..11c2054ca50b93cbd2a9d8192eff352ca7acc805 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
@@ -88,7 +88,6 @@ and close the socket again 3
   </stack>
 </error>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
@@ -101,6 +100,4 @@ and close the socket again 3
   </pair>
 </errorcounts>
 
-
 </valgrindoutput>
-
index 2f2bc9831e7917cd9e1f1bbd84e800490da6b5d4..1de9930597b1a8f341c3747a31203e4ccdef2da0 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
index b06da9d72252855a5ec1a3aea953be3a940da73e..2d17ef7635fd2ea4367e2784f202bdff7d882c70 100644 (file)
@@ -2,7 +2,7 @@
 
 <valgrindoutput>
 
-<protocolversion>5</protocolversion>
+<protocolversion>6</protocolversion>
 <protocoltool>none</protocoltool>
 
 <preamble>
   <time>...</time>
 </status>
 
-
 <status>
   <state>FINISHED</state>
   <time>...</time>
 </status>
 
-
 </valgrindoutput>
-