You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
(12) |
|
2
(6) |
3
(13) |
4
(9) |
5
(6) |
6
(8) |
7
(5) |
8
(5) |
|
9
(15) |
10
(18) |
11
(18) |
12
(18) |
13
(7) |
14
(11) |
15
(6) |
|
16
(12) |
17
(28) |
18
(15) |
19
(12) |
20
(17) |
21
(23) |
22
(10) |
|
23
(9) |
24
(11) |
25
(7) |
26
(21) |
27
(12) |
28
(6) |
29
(6) |
|
30
(8) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2007-09-18 23:30:16
|
Author: njn
Date: 2007-09-19 00:30:07 +0100 (Wed, 19 Sep 2007)
New Revision: 6863
Log:
tweak top-of-graph output
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/ms_print
branches/MASSIF2/massif/tests/basic.post.exp
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-18 19:29:25 UTC (rev 6862)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-18 23:30:07 UTC (rev 6863)
@@ -406,7 +406,7 @@
static Bool clo_heap = True;
static UInt clo_heap_admin = 8;
static Bool clo_stacks = True;
-static Bool clo_depth = 8;
+static UInt clo_depth = 8;
static UInt clo_threshold = 100; // 100 == 1%
static UInt clo_time_unit = TimeMS;
@@ -1516,12 +1516,16 @@
}
// Print description lines. Include:
- // * --heap-admin value
- // * --depth number
- // * --stacks value
// * --alloc-fn values
// * --threshold values
- FP("desc: XXX\n");
+ FP("desc: Options: XXX\n");
+// FP("desc: Options: Heap profiling %s. Stack profiling %s\n",
+// clo_heap ? "on" : "off", clo_stacks ? "on" : "off");
+// FP("desc: Options: Heap admin size = %u bytes.\n", clo_heap_admin);
+// FP("desc: Options: Max. tree depth = %u calls.\n", clo_depth);
+// FP("desc: Options: Significance threshold = %s\n",
+// make_perc(clo_threshold, 10000));
+// FP("desc: Allocation functions = ...");
// Print "cmd:" line.
FP("cmd: ");
Modified: branches/MASSIF2/massif/ms_print
===================================================================
--- branches/MASSIF2/massif/ms_print 2007-09-18 19:29:25 UTC (rev 6862)
+++ branches/MASSIF2/massif/ms_print 2007-09-18 23:30:07 UTC (rev 6863)
@@ -30,8 +30,6 @@
use warnings;
use strict;
-# XXX:need to put threshold in the stats at the top of the output
-
# XXX:
# - move graph printing stuff into a separate subroutine
# - implement --threshold
@@ -364,9 +362,9 @@
# Print header
#-------------------------------------------------------------------------
print($fancy);
- print("Command: $cmd\n");
- print("Data file: $input_file\n");
- print("Description: $desc\n");
+ print("Command: $cmd\n");
+ print("Data file: $input_file\n");
+ print("$desc\n");
print("\n");
#-------------------------------------------------------------------------
Modified: branches/MASSIF2/massif/tests/basic.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic.post.exp 2007-09-18 19:29:25 UTC (rev 6862)
+++ branches/MASSIF2/massif/tests/basic.post.exp 2007-09-18 23:30:07 UTC (rev 6863)
@@ -1,7 +1,7 @@
--------------------------------------------------------------------------------
-Command: ./basic
-Data file: massif.out
-Description: XXX
+Command: ./basic
+Data file: massif.out
+Options: XXX
3.9k| :
|
|
From: <sv...@va...> - 2007-09-18 22:48:10
|
Author: njn
Date: 2007-09-18 23:48:11 +0100 (Tue, 18 Sep 2007)
New Revision: 337
Log:
augment ref
Modified:
trunk/docs/pubs.html
Modified: trunk/docs/pubs.html
===================================================================
--- trunk/docs/pubs.html 2007-09-18 22:46:45 UTC (rev 336)
+++ trunk/docs/pubs.html 2007-09-18 22:48:11 UTC (rev 337)
@@ -59,7 +59,8 @@
with Valgrind</a>.<br>
Nicholas Nethercote, Robert Walsh and Jeremy Fitzhardinge.<br>
Invited tutorial, IEEE International Symposium on Workload
- Characterization, San Jose, California, USA, October 2006.</b><br>
+ Characterization (IISWC 2006), San Jose, California, USA, October
+ 2006.</b><br>
These four talks cover (a) how Valgrind works, (b) three example profiling
tools (Cachegrind, Callgrind, Massif), (c) how to build a new tool, using
a simple example, (d) ideas for more advanced tools, and general
|
|
From: <sv...@va...> - 2007-09-18 22:46:49
|
Author: njn
Date: 2007-09-18 23:46:45 +0100 (Tue, 18 Sep 2007)
New Revision: 336
Log:
Add Flayer paper.
Elaborate some references.
Added:
trunk/docs/drewry2007.pdf
Modified:
trunk/docs/pubs.html
Added: trunk/docs/drewry2007.pdf
===================================================================
(Binary files differ)
Property changes on: trunk/docs/drewry2007.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/docs/pubs.html
===================================================================
--- trunk/docs/pubs.html 2007-08-28 22:44:20 UTC (rev 335)
+++ trunk/docs/pubs.html 2007-09-18 22:46:45 UTC (rev 336)
@@ -14,7 +14,9 @@
Origin of Null and Undefined Value Errors</a>.<br>
Michael D. Bond, Nicholas Nethercote, Stephen W. Kent, Samuel Z. Guyer and
Kathryn S. McKinley.<br>
- Proceedings of OOPSLA 2007, Montreal, Canada, October 2007.</b><br>
+ Proceedings of the ACM SIGPLAN International Conference on Object-Oriented
+ Programming, Systems, Languages and Applications (OOPSLA 2007),
+ Montreal, Canada, October 2007.</b><br>
This paper describes an attempt to improve the error messages produced for
undefined value errors detected by Memcheck by tracking their origins.
Ultimately it wasn't that useful in practice. The paper also describes a
@@ -27,7 +29,9 @@
<b><a href="/docs/valgrind2007.pdf">Valgrind: A Framework for Heavyweight
Dynamic Binary Instrumentation</a>.<br>
Nicholas Nethercote and Julian Seward.<br>
- Proceedings of PLDI 2007, San Diego, California, USA, June 2007.</b><br>
+ Proceedings of ACM SIGPLAN 2007 Conference on Programming Language Design
+ and Implementation (PLDI 2007),
+ San Diego, California, USA, June 2007.</b><br>
This paper describes how Valgrind works, and how it differs from other
DBI frameworks such as Pin and DynamoRIO.
Please cite this paper when discussing Valgrind in general. However, if
@@ -40,7 +44,9 @@
<b><a href="/docs/shadow-memory2007.pdf">How to Shadow Every Byte of Memory
Used by a Program</a>.<br>
Nicholas Nethercote and Julian Seward.<br>
- Proceedings of VEE 2007, San Diego, California, USA, June 2007.</b><br>
+ Proceedings of the Third International ACM SIGPLAN/SIGOPS Conference on
+ Virtual Execution Environments (VEE 2007), San Diego, California, USA,
+ June 2007.</b><br>
This paper describes in detail how Memcheck's shadow memory is
implemented, and compares it to other alternative approaches.
Please cite this paper if you are discussing shadow memory
@@ -139,6 +145,16 @@
<ul>
<li><p>
+ <b><a href="/docs/drewry2007.pdf">Flayer: Exposing Application
+ Internals</a>.<br>
+ Will Drewry and Tavis Ormandy.<br>
+ Proceedings of the First USENIX Workshop on Offensive Technologies (WOOT
+ '07), Boston, Massachussetts, USA, August 2007.</b><br>
+ This paper is about a tool that analyses and modifies program execution
+ flow.
+ </p></li>
+
+ <li><p>
<b><a href="/docs/muehlenfeld2006.pdf">Fault Detection in Multi-Threaded C++
Server Applications</a>.<br>
Arndt Muehlenfeld and Franz Wotawa.<br>
|
|
From: Stephen M.
|
>>>>> "NJN" == svn <sv...@va...> writes:
NJN> Author: njn
NJN> Date: 2007-09-18 07:38:43 +0100 (Tue, 18 Sep 2007)
NJN> New Revision: 6858
NJN> Log:
NJN> Print output to file. Currently hard-wired to go to "massif.out".
NJN> +// XXX: implement f{,n}printf in m_libcprint.c eventually, and use it here.
NJN> +// Then change Cachegrind to use it too.
NJN> +#define FP(format, args...) ({ \
NJN> + VG_(snprintf)(buf, BUF_SIZE, format, ##args); \
NJN> + VG_(write)(fd, (void*)buf, VG_(strlen)(buf)); \
NJN> +})
I'll second the desire for having "fprintf" in the Valgrind standard
library. Surely it's pretty common for tools to want to print out some
sort of information or trace to a file.
I've felt this need in two tools so far. In the first, I ended up
importing a big chunk of a standard I/O implementation from dietlibc
into the tool, as I think I've mentioned before. In the second, I'm
currently muddling along by redirecting all of Valgrind's standard
error, and text matching the lines that are actually part of a trace.
Perhaps the thing to do would be to do an implementation now that's no
more complicated than that macro, using snprintf, write, and a
fixed-sized buffer, and worry about improving it as the need arises?
-- Stephen
|
|
From: <sv...@va...> - 2007-09-18 19:29:28
|
Author: weidendo Date: 2007-09-18 20:29:25 +0100 (Tue, 18 Sep 2007) New Revision: 6862 Log: Update Modified: trunk/docs/internals/3_2_BUGSTATUS.txt Modified: trunk/docs/internals/3_2_BUGSTATUS.txt =================================================================== --- trunk/docs/internals/3_2_BUGSTATUS.txt 2007-09-18 19:12:57 UTC (rev 6861) +++ trunk/docs/internals/3_2_BUGSTATUS.txt 2007-09-18 19:29:25 UTC (rev 6862) @@ -158,6 +158,7 @@ r6758 r6760 32 n-i-bz handle a whole bunch of MPI2 types +r6861 pending 149963 fix behavior with callgrind runs of another user //// maybe do not fix in 3.2 branch |
|
From: <sv...@va...> - 2007-09-18 19:12:56
|
Author: weidendo
Date: 2007-09-18 20:12:57 +0100 (Tue, 18 Sep 2007)
New Revision: 6861
Log:
callgrind_control: Fix behavior with callgrind runs of another user
callgrind_control uses files /tmp/callgrind.info.* to be able to
locate running callgrind processes. These files can be read only by
the user which started callgrind. The callgrind_control script
did not check for "permission denied" on opening these files, which
resulted in some unexpected errors. Now, it is checked whether
the "open" was successful, and if not, we skip the according callgrind
process.
Fixes bug 149963.
Modified:
trunk/callgrind/callgrind_control.in
Modified: trunk/callgrind/callgrind_control.in
===================================================================
--- trunk/callgrind/callgrind_control.in 2007-09-18 07:35:51 UTC (rev 6860)
+++ trunk/callgrind/callgrind_control.in 2007-09-18 19:12:57 UTC (rev 6861)
@@ -43,7 +43,8 @@
close MAP;
if ($found == 0) { next; }
- open INFO, "<$f";
+ $res = open INFO, "<$f";
+ if (!$res) { next; }
while(<INFO>) {
if (/version: (\d+)/) { $mversion{$pid} = $1; }
if (/cmd: (.+)$/) { $cmd{$pid} = $1; }
|
|
From: <js...@ac...> - 2007-09-18 13:01:39
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-09-18 09:00:01 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <sv...@va...> - 2007-09-18 07:38:21
|
Author: njn
Date: 2007-09-18 08:35:51 +0100 (Tue, 18 Sep 2007)
New Revision: 6860
Log:
- Address some comments.
- Make .curr_szB a SizeT instead of a UInt -- on 64-bit machines it could
easily exceed 4GB.
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-18 07:15:10 UTC (rev 6859)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-18 07:35:51 UTC (rev 6860)
@@ -234,7 +234,7 @@
// Bottom-XPts: space for the precise context.
// Other XPts: space of all the descendent bottom-XPts.
// Nb: this value goes up and down as the program executes.
- UInt curr_szB;
+ SizeT curr_szB;
XPt* parent; // pointer to parent XPt
@@ -598,11 +598,9 @@
n_dupd_xpts_freed++;
}
-// XXX: improve this so that it prints the failing XPt always.
static void sanity_check_XTree(XPt* xpt, XPt* parent)
{
Int i;
- SizeT children_sum_szB = 0;
tl_assert(xpt != NULL);
@@ -615,6 +613,7 @@
// Check the sum of any children szBs equals the XPt's szB.
if (xpt->n_children > 0) {
+ SizeT children_sum_szB = 0;
for (i = 0; i < xpt->n_children; i++) {
children_sum_szB += xpt->children[i]->curr_szB;
}
@@ -1389,14 +1388,12 @@
}
// Does the xpt account for >= 1% of total memory used?
-// XXX: make command-line controllable?
static Bool is_significant_XPt(XPt* xpt, SizeT curr_total_szB)
{
// clo_threshold is measured in hundredths of a percent of total size,
// ie. 10,000ths of total size. So clo_threshold=100 means that the
// threshold is 1% of total size.
tl_assert(xpt->curr_szB <= curr_total_szB);
- // XXX: overflow danger here...
return (xpt->curr_szB * 10000 / curr_total_szB >= clo_threshold);
}
@@ -1414,17 +1411,6 @@
Int n_insig_children;
Int n_child_entries;
- // If the XPt has children, check that the sum of all their sizes equals
- // the XPt's size.
- // XXX: duplicates code from the sanity check?
- if (xpt->n_children > 0) {
- SizeT children_sum_szB = 0;
- for (i = 0; i < xpt->n_children; i++) {
- children_sum_szB += xpt->children[i]->curr_szB;
- }
- tl_assert(children_sum_szB == xpt->curr_szB);
- }
-
// Sort XPt's children by curr_szB (reverse order: biggest to smallest)
VG_(ssort)(xpt->children, xpt->n_children, sizeof(XPt*),
XPt_revcmp_curr_szB);
@@ -1529,7 +1515,12 @@
fd = sres.res;
}
- // Print description lines.
+ // Print description lines. Include:
+ // * --heap-admin value
+ // * --depth number
+ // * --stacks value
+ // * --alloc-fn values
+ // * --threshold values
FP("desc: XXX\n");
// Print "cmd:" line.
|
|
From: <sv...@va...> - 2007-09-18 07:15:10
|
Author: njn
Date: 2007-09-18 08:15:10 +0100 (Tue, 18 Sep 2007)
New Revision: 6859
Log:
- Fix the 'posttest' facility in vg_regtest which wasn't quite working.
Rename it 'post'.
- Add a new test, 'basic'. Uses the 'post' facility to check the output of
'ms_print' as well, yay.
- Remove old irrelevant tests.
- Fix off-by-one error in detailed snapshot frequencies.
Added:
branches/MASSIF2/massif/tests/basic.c
branches/MASSIF2/massif/tests/basic.post.exp
branches/MASSIF2/massif/tests/basic.stderr.exp
branches/MASSIF2/massif/tests/basic.vgtest
Removed:
branches/MASSIF2/massif/tests/true_html.stderr.exp
branches/MASSIF2/massif/tests/true_html.vgtest
branches/MASSIF2/massif/tests/true_text.stderr.exp
branches/MASSIF2/massif/tests/true_text.vgtest
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
branches/MASSIF2/massif/tests/basic_malloc.stderr.exp
branches/MASSIF2/massif/tests/basic_malloc.vgtest
branches/MASSIF2/massif/tests/filter_stderr
branches/MASSIF2/massif/tests/toobig-allocs.stderr.exp
branches/MASSIF2/tests/vg_regtest.in
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1005,7 +1005,7 @@
if (clo_heap) {
snapshot->heap_szB = heap_szB;
// Take a detailed snapshot if it's been long enough since the last one.
- if (DETAILED_SNAPSHOT_FREQ == n_snapshots_since_last_detailed) {
+ if (DETAILED_SNAPSHOT_FREQ == n_snapshots_since_last_detailed+1) {
snapshot->alloc_xpt = dup_XTree(alloc_xpt, /*parent*/NULL);
tl_assert(snapshot->alloc_xpt->curr_szB == heap_szB);
n_snapshots_since_last_detailed = 0;
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-09-18 07:15:10 UTC (rev 6859)
@@ -5,13 +5,13 @@
noinst_SCRIPTS = filter_stderr
EXTRA_DIST = $(noinst_SCRIPTS) \
+ basic.post.exp basic.stderr.exp basic.vgtest \
basic_malloc.stderr.exp basic_malloc.vgtest \
- toobig-allocs.stderr.exp toobig-allocs.vgtest \
- true_html.stderr.exp true_html.vgtest \
- true_text.stderr.exp true_text.vgtest
+ toobig-allocs.stderr.exp toobig-allocs.vgtest
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI)
check_PROGRAMS = \
+ basic \
basic_malloc
Added: branches/MASSIF2/massif/tests/basic.c
===================================================================
--- branches/MASSIF2/massif/tests/basic.c (rev 0)
+++ branches/MASSIF2/massif/tests/basic.c 2007-09-18 07:15:10 UTC (rev 6859)
@@ -0,0 +1,21 @@
+#include <stdlib.h>
+
+// Allocate some memory and then deallocate it, to get a nice up-then-down
+// graph.
+
+int main(void)
+{
+ // N=36 gives us 72 sample points, which fills the text graph nicely.
+ #define N 36
+ int i;
+ int* a[N];
+
+ for (i = 0; i < N; i++) {
+ a[i] = malloc(100);
+ }
+ for (i = 0; i < N; i++) {
+ free(a[i]);
+ }
+
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/basic.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/basic.post.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -0,0 +1,634 @@
+--------------------------------------------------------------------------------
+Command: ./basic
+Data file: massif.out
+Description: XXX
+
+
+3.9k| :
+ | .:::.
+ | .::::::@.
+ | .::::::::@::.
+ | .@:::::::::@::::.
+ | ::@:::::::::@::::::
+ | .:::@:::::::::@:::::::.
+ | .:::::@:::::::::@:::::::::.
+ | .:::::::@:::::::::@:::::::::@:.
+ | .:::::::::@:::::::::@:::::::::@:::.
+ | :@:::::::::@:::::::::@:::::::::@:::::
+ | .::@:::::::::@:::::::::@:::::::::@::::::.
+ | .::::@:::::::::@:::::::::@:::::::::@::::::::.
+ | .::::::@:::::::::@:::::::::@:::::::::@:::::::::@.
+ | .::::::::@:::::::::@:::::::::@:::::::::@:::::::::@::.
+ | @:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@::::
+ | .:@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::.
+ | .:::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::.
+ | .:::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::.
+ |.:::::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@:::::::::@:.
+ 0 +--------@---------@---------@---------@---------@---------@---------@---
+
+ snapshot 0: t = 0 B, size = 0 bytes
+ snapshot 1: t = 100 B, size = 108 bytes
+ snapshot 2: t = 200 B, size = 216 bytes
+ snapshot 3: t = 300 B, size = 324 bytes
+ snapshot 4: t = 400 B, size = 432 bytes
+ snapshot 5: t = 500 B, size = 540 bytes
+ snapshot 6: t = 600 B, size = 648 bytes
+ snapshot 7: t = 700 B, size = 756 bytes
+ snapshot 8: t = 800 B, size = 864 bytes
+ snapshot 9: t = 900 B, size = 972 bytes
+ snapshot 10: t = 1,000 B, size = 1,080 bytes
+ snapshot 11: t = 1,100 B, size = 1,188 bytes
+ snapshot 12: t = 1,200 B, size = 1,296 bytes
+ snapshot 13: t = 1,300 B, size = 1,404 bytes
+ snapshot 14: t = 1,400 B, size = 1,512 bytes
+ snapshot 15: t = 1,500 B, size = 1,620 bytes
+ snapshot 16: t = 1,600 B, size = 1,728 bytes
+ snapshot 17: t = 1,700 B, size = 1,836 bytes
+ snapshot 18: t = 1,800 B, size = 1,944 bytes
+ snapshot 19: t = 1,900 B, size = 2,052 bytes
+ snapshot 20: t = 2,000 B, size = 2,160 bytes
+ snapshot 21: t = 2,100 B, size = 2,268 bytes
+ snapshot 22: t = 2,200 B, size = 2,376 bytes
+ snapshot 23: t = 2,300 B, size = 2,484 bytes
+ snapshot 24: t = 2,400 B, size = 2,592 bytes
+ snapshot 25: t = 2,500 B, size = 2,700 bytes
+ snapshot 26: t = 2,600 B, size = 2,808 bytes
+ snapshot 27: t = 2,700 B, size = 2,916 bytes
+ snapshot 28: t = 2,800 B, size = 3,024 bytes
+ snapshot 29: t = 2,900 B, size = 3,132 bytes
+ snapshot 30: t = 3,000 B, size = 3,240 bytes
+ snapshot 31: t = 3,100 B, size = 3,348 bytes
+ snapshot 32: t = 3,200 B, size = 3,456 bytes
+ snapshot 33: t = 3,300 B, size = 3,564 bytes
+ snapshot 34: t = 3,400 B, size = 3,672 bytes
+ snapshot 35: t = 3,500 B, size = 3,780 bytes
+ snapshot 36: t = 3,600 B, size = 3,888 bytes
+ snapshot 37: t = 3,700 B, size = 3,780 bytes
+ snapshot 38: t = 3,800 B, size = 3,672 bytes
+ snapshot 39: t = 3,900 B, size = 3,564 bytes
+ snapshot 40: t = 4,000 B, size = 3,456 bytes
+ snapshot 41: t = 4,100 B, size = 3,348 bytes
+ snapshot 42: t = 4,200 B, size = 3,240 bytes
+ snapshot 43: t = 4,300 B, size = 3,132 bytes
+ snapshot 44: t = 4,400 B, size = 3,024 bytes
+ snapshot 45: t = 4,500 B, size = 2,916 bytes
+ snapshot 46: t = 4,600 B, size = 2,808 bytes
+ snapshot 47: t = 4,700 B, size = 2,700 bytes
+ snapshot 48: t = 4,800 B, size = 2,592 bytes
+ snapshot 49: t = 4,900 B, size = 2,484 bytes
+ snapshot 50: t = 5,000 B, size = 2,376 bytes
+ snapshot 51: t = 5,100 B, size = 2,268 bytes
+ snapshot 52: t = 5,200 B, size = 2,160 bytes
+ snapshot 53: t = 5,300 B, size = 2,052 bytes
+ snapshot 54: t = 5,400 B, size = 1,944 bytes
+ snapshot 55: t = 5,500 B, size = 1,836 bytes
+ snapshot 56: t = 5,600 B, size = 1,728 bytes
+ snapshot 57: t = 5,700 B, size = 1,620 bytes
+ snapshot 58: t = 5,800 B, size = 1,512 bytes
+ snapshot 59: t = 5,900 B, size = 1,404 bytes
+ snapshot 60: t = 6,000 B, size = 1,296 bytes
+ snapshot 61: t = 6,100 B, size = 1,188 bytes
+ snapshot 62: t = 6,200 B, size = 1,080 bytes
+ snapshot 63: t = 6,300 B, size = 972 bytes
+ snapshot 64: t = 6,400 B, size = 864 bytes
+ snapshot 65: t = 6,500 B, size = 756 bytes
+ snapshot 66: t = 6,600 B, size = 648 bytes
+ snapshot 67: t = 6,700 B, size = 540 bytes
+ snapshot 68: t = 6,800 B, size = 432 bytes
+ snapshot 69: t = 6,900 B, size = 324 bytes
+ snapshot 70: t = 7,000 B, size = 216 bytes
+ snapshot 71: t = 7,100 B, size = 108 bytes
+ snapshot 72: t = 7,200 B, size = 0 bytes
+
+=================================
+== snapshot 0 (0 B)
+=================================
+Total memory usage: 0 bytes
+Useful heap usage : 0 bytes
+Admin heap usage : 0 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 1 (100 B)
+=================================
+Total memory usage: 108 bytes
+Useful heap usage : 100 bytes
+Admin heap usage : 8 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 2 (200 B)
+=================================
+Total memory usage: 216 bytes
+Useful heap usage : 200 bytes
+Admin heap usage : 16 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 3 (300 B)
+=================================
+Total memory usage: 324 bytes
+Useful heap usage : 300 bytes
+Admin heap usage : 24 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 4 (400 B)
+=================================
+Total memory usage: 432 bytes
+Useful heap usage : 400 bytes
+Admin heap usage : 32 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 5 (500 B)
+=================================
+Total memory usage: 540 bytes
+Useful heap usage : 500 bytes
+Admin heap usage : 40 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 6 (600 B)
+=================================
+Total memory usage: 648 bytes
+Useful heap usage : 600 bytes
+Admin heap usage : 48 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 7 (700 B)
+=================================
+Total memory usage: 756 bytes
+Useful heap usage : 700 bytes
+Admin heap usage : 56 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 8 (800 B)
+=================================
+Total memory usage: 864 bytes
+Useful heap usage : 800 bytes
+Admin heap usage : 64 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 9 (900 B)
+=================================
+Total memory usage: 972 bytes
+Useful heap usage : 900 bytes
+Admin heap usage : 72 bytes
+Stacks usage : 0 bytes
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (900B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 10 (1,000 B)
+=================================
+Total memory usage: 1,080 bytes
+Useful heap usage : 1,000 bytes
+Admin heap usage : 80 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 11 (1,100 B)
+=================================
+Total memory usage: 1,188 bytes
+Useful heap usage : 1,100 bytes
+Admin heap usage : 88 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 12 (1,200 B)
+=================================
+Total memory usage: 1,296 bytes
+Useful heap usage : 1,200 bytes
+Admin heap usage : 96 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 13 (1,300 B)
+=================================
+Total memory usage: 1,404 bytes
+Useful heap usage : 1,300 bytes
+Admin heap usage : 104 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 14 (1,400 B)
+=================================
+Total memory usage: 1,512 bytes
+Useful heap usage : 1,400 bytes
+Admin heap usage : 112 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 15 (1,500 B)
+=================================
+Total memory usage: 1,620 bytes
+Useful heap usage : 1,500 bytes
+Admin heap usage : 120 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 16 (1,600 B)
+=================================
+Total memory usage: 1,728 bytes
+Useful heap usage : 1,600 bytes
+Admin heap usage : 128 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 17 (1,700 B)
+=================================
+Total memory usage: 1,836 bytes
+Useful heap usage : 1,700 bytes
+Admin heap usage : 136 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 18 (1,800 B)
+=================================
+Total memory usage: 1,944 bytes
+Useful heap usage : 1,800 bytes
+Admin heap usage : 144 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 19 (1,900 B)
+=================================
+Total memory usage: 2,052 bytes
+Useful heap usage : 1,900 bytes
+Admin heap usage : 152 bytes
+Stacks usage : 0 bytes
+92.59% (1900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (1900B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 20 (2,000 B)
+=================================
+Total memory usage: 2,160 bytes
+Useful heap usage : 2,000 bytes
+Admin heap usage : 160 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 21 (2,100 B)
+=================================
+Total memory usage: 2,268 bytes
+Useful heap usage : 2,100 bytes
+Admin heap usage : 168 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 22 (2,200 B)
+=================================
+Total memory usage: 2,376 bytes
+Useful heap usage : 2,200 bytes
+Admin heap usage : 176 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 23 (2,300 B)
+=================================
+Total memory usage: 2,484 bytes
+Useful heap usage : 2,300 bytes
+Admin heap usage : 184 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 24 (2,400 B)
+=================================
+Total memory usage: 2,592 bytes
+Useful heap usage : 2,400 bytes
+Admin heap usage : 192 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 25 (2,500 B)
+=================================
+Total memory usage: 2,700 bytes
+Useful heap usage : 2,500 bytes
+Admin heap usage : 200 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 26 (2,600 B)
+=================================
+Total memory usage: 2,808 bytes
+Useful heap usage : 2,600 bytes
+Admin heap usage : 208 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 27 (2,700 B)
+=================================
+Total memory usage: 2,916 bytes
+Useful heap usage : 2,700 bytes
+Admin heap usage : 216 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 28 (2,800 B)
+=================================
+Total memory usage: 3,024 bytes
+Useful heap usage : 2,800 bytes
+Admin heap usage : 224 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 29 (2,900 B)
+=================================
+Total memory usage: 3,132 bytes
+Useful heap usage : 2,900 bytes
+Admin heap usage : 232 bytes
+Stacks usage : 0 bytes
+92.59% (2900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (2900B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 30 (3,000 B)
+=================================
+Total memory usage: 3,240 bytes
+Useful heap usage : 3,000 bytes
+Admin heap usage : 240 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 31 (3,100 B)
+=================================
+Total memory usage: 3,348 bytes
+Useful heap usage : 3,100 bytes
+Admin heap usage : 248 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 32 (3,200 B)
+=================================
+Total memory usage: 3,456 bytes
+Useful heap usage : 3,200 bytes
+Admin heap usage : 256 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 33 (3,300 B)
+=================================
+Total memory usage: 3,564 bytes
+Useful heap usage : 3,300 bytes
+Admin heap usage : 264 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 34 (3,400 B)
+=================================
+Total memory usage: 3,672 bytes
+Useful heap usage : 3,400 bytes
+Admin heap usage : 272 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 35 (3,500 B)
+=================================
+Total memory usage: 3,780 bytes
+Useful heap usage : 3,500 bytes
+Admin heap usage : 280 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 36 (3,600 B)
+=================================
+Total memory usage: 3,888 bytes
+Useful heap usage : 3,600 bytes
+Admin heap usage : 288 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 37 (3,700 B)
+=================================
+Total memory usage: 3,780 bytes
+Useful heap usage : 3,500 bytes
+Admin heap usage : 280 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 38 (3,800 B)
+=================================
+Total memory usage: 3,672 bytes
+Useful heap usage : 3,400 bytes
+Admin heap usage : 272 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 39 (3,900 B)
+=================================
+Total memory usage: 3,564 bytes
+Useful heap usage : 3,300 bytes
+Admin heap usage : 264 bytes
+Stacks usage : 0 bytes
+92.59% (3300B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (3300B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 40 (4,000 B)
+=================================
+Total memory usage: 3,456 bytes
+Useful heap usage : 3,200 bytes
+Admin heap usage : 256 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 41 (4,100 B)
+=================================
+Total memory usage: 3,348 bytes
+Useful heap usage : 3,100 bytes
+Admin heap usage : 248 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 42 (4,200 B)
+=================================
+Total memory usage: 3,240 bytes
+Useful heap usage : 3,000 bytes
+Admin heap usage : 240 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 43 (4,300 B)
+=================================
+Total memory usage: 3,132 bytes
+Useful heap usage : 2,900 bytes
+Admin heap usage : 232 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 44 (4,400 B)
+=================================
+Total memory usage: 3,024 bytes
+Useful heap usage : 2,800 bytes
+Admin heap usage : 224 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 45 (4,500 B)
+=================================
+Total memory usage: 2,916 bytes
+Useful heap usage : 2,700 bytes
+Admin heap usage : 216 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 46 (4,600 B)
+=================================
+Total memory usage: 2,808 bytes
+Useful heap usage : 2,600 bytes
+Admin heap usage : 208 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 47 (4,700 B)
+=================================
+Total memory usage: 2,700 bytes
+Useful heap usage : 2,500 bytes
+Admin heap usage : 200 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 48 (4,800 B)
+=================================
+Total memory usage: 2,592 bytes
+Useful heap usage : 2,400 bytes
+Admin heap usage : 192 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 49 (4,900 B)
+=================================
+Total memory usage: 2,484 bytes
+Useful heap usage : 2,300 bytes
+Admin heap usage : 184 bytes
+Stacks usage : 0 bytes
+92.59% (2300B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (2300B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 50 (5,000 B)
+=================================
+Total memory usage: 2,376 bytes
+Useful heap usage : 2,200 bytes
+Admin heap usage : 176 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 51 (5,100 B)
+=================================
+Total memory usage: 2,268 bytes
+Useful heap usage : 2,100 bytes
+Admin heap usage : 168 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 52 (5,200 B)
+=================================
+Total memory usage: 2,160 bytes
+Useful heap usage : 2,000 bytes
+Admin heap usage : 160 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 53 (5,300 B)
+=================================
+Total memory usage: 2,052 bytes
+Useful heap usage : 1,900 bytes
+Admin heap usage : 152 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 54 (5,400 B)
+=================================
+Total memory usage: 1,944 bytes
+Useful heap usage : 1,800 bytes
+Admin heap usage : 144 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 55 (5,500 B)
+=================================
+Total memory usage: 1,836 bytes
+Useful heap usage : 1,700 bytes
+Admin heap usage : 136 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 56 (5,600 B)
+=================================
+Total memory usage: 1,728 bytes
+Useful heap usage : 1,600 bytes
+Admin heap usage : 128 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 57 (5,700 B)
+=================================
+Total memory usage: 1,620 bytes
+Useful heap usage : 1,500 bytes
+Admin heap usage : 120 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 58 (5,800 B)
+=================================
+Total memory usage: 1,512 bytes
+Useful heap usage : 1,400 bytes
+Admin heap usage : 112 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 59 (5,900 B)
+=================================
+Total memory usage: 1,404 bytes
+Useful heap usage : 1,300 bytes
+Admin heap usage : 104 bytes
+Stacks usage : 0 bytes
+92.59% (1300B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (1300B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 60 (6,000 B)
+=================================
+Total memory usage: 1,296 bytes
+Useful heap usage : 1,200 bytes
+Admin heap usage : 96 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 61 (6,100 B)
+=================================
+Total memory usage: 1,188 bytes
+Useful heap usage : 1,100 bytes
+Admin heap usage : 88 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 62 (6,200 B)
+=================================
+Total memory usage: 1,080 bytes
+Useful heap usage : 1,000 bytes
+Admin heap usage : 80 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 63 (6,300 B)
+=================================
+Total memory usage: 972 bytes
+Useful heap usage : 900 bytes
+Admin heap usage : 72 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 64 (6,400 B)
+=================================
+Total memory usage: 864 bytes
+Useful heap usage : 800 bytes
+Admin heap usage : 64 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 65 (6,500 B)
+=================================
+Total memory usage: 756 bytes
+Useful heap usage : 700 bytes
+Admin heap usage : 56 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 66 (6,600 B)
+=================================
+Total memory usage: 648 bytes
+Useful heap usage : 600 bytes
+Admin heap usage : 48 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 67 (6,700 B)
+=================================
+Total memory usage: 540 bytes
+Useful heap usage : 500 bytes
+Admin heap usage : 40 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 68 (6,800 B)
+=================================
+Total memory usage: 432 bytes
+Useful heap usage : 400 bytes
+Admin heap usage : 32 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 69 (6,900 B)
+=================================
+Total memory usage: 324 bytes
+Useful heap usage : 300 bytes
+Admin heap usage : 24 bytes
+Stacks usage : 0 bytes
+92.59% (300B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (300B) 0x80483E5: main (basic.c:14)
+
+=================================
+== snapshot 70 (7,000 B)
+=================================
+Total memory usage: 216 bytes
+Useful heap usage : 200 bytes
+Admin heap usage : 16 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 71 (7,100 B)
+=================================
+Total memory usage: 108 bytes
+Useful heap usage : 100 bytes
+Admin heap usage : 8 bytes
+Stacks usage : 0 bytes
+=================================
+== snapshot 72 (7,200 B)
+=================================
+Total memory usage: 0 bytes
+Useful heap usage : 0 bytes
+Admin heap usage : 0 bytes
+Stacks usage : 0 bytes
Added: branches/MASSIF2/massif/tests/basic.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/basic.stderr.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/basic.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/basic.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/basic.vgtest 2007-09-18 07:15:10 UTC (rev 6859)
@@ -0,0 +1,4 @@
+prog: basic
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/basic_malloc.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/basic_malloc.stderr.exp 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/basic_malloc.stderr.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,6 +1,2 @@
-Total spacetime:
-heap:
-heap admin:
-stack(s):
Modified: branches/MASSIF2/massif/tests/basic_malloc.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/basic_malloc.vgtest 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/basic_malloc.vgtest 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,2 +1,2 @@
prog: basic_malloc
-cleanup: rm massif.*.*
+cleanup: rm massif.out
Modified: branches/MASSIF2/massif/tests/filter_stderr
===================================================================
--- branches/MASSIF2/massif/tests/filter_stderr 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/filter_stderr 2007-09-18 07:15:10 UTC (rev 6859)
@@ -5,11 +5,5 @@
$dir/../../tests/filter_stderr_basic |
# Remove "Massif, ..." line and the following copyright line.
-sed "/^Massif, a space profiler./ , /./ d" |
+sed "/^Massif, a space profiler./ , /./ d"
-# Remove numbers from all lines (and "(n/a)" strings)
-sed "s/\(Total spacetime: \).*$/\1/" |
-sed "s/\(heap: \).*$/\1/" |
-sed "s/\(heap admin: \).*$/\1/" |
-sed "s/\(stack(s): \).*$/\1/"
-
Modified: branches/MASSIF2/massif/tests/toobig-allocs.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/toobig-allocs.stderr.exp 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/toobig-allocs.stderr.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -2,7 +2,3 @@
Attempting too-big malloc()...
Attempting too-big mmap()...
-Total spacetime:
-heap:
-heap admin:
-stack(s):
Deleted: branches/MASSIF2/massif/tests/true_html.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/true_html.stderr.exp 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/true_html.stderr.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,6 +0,0 @@
-
-
-Total spacetime:
-heap:
-heap admin:
-stack(s):
Deleted: branches/MASSIF2/massif/tests/true_html.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/true_html.vgtest 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/true_html.vgtest 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,3 +0,0 @@
-prog: ../../tests/true
-vgopts: --format=html
-cleanup: rm massif.*.*
Deleted: branches/MASSIF2/massif/tests/true_text.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/true_text.stderr.exp 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/true_text.stderr.exp 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,6 +0,0 @@
-
-
-Total spacetime:
-heap:
-heap admin:
-stack(s):
Deleted: branches/MASSIF2/massif/tests/true_text.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/true_text.vgtest 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/massif/tests/true_text.vgtest 2007-09-18 07:15:10 UTC (rev 6859)
@@ -1,3 +0,0 @@
-prog: ../../tests/true
-vgopts: --format=text
-cleanup: rm massif.*.*
Modified: branches/MASSIF2/tests/vg_regtest.in
===================================================================
--- branches/MASSIF2/tests/vg_regtest.in 2007-09-18 06:38:43 UTC (rev 6858)
+++ branches/MASSIF2/tests/vg_regtest.in 2007-09-18 07:15:10 UTC (rev 6859)
@@ -55,8 +55,8 @@
# - stdout_filter: <filter to run stdout through> (default: none)
# - stderr_filter: <filter to run stderr through> (default: ./filter_stderr)
# - prereq: <prerequisite command> (default: none)
-# - posttest: <post-test check command> (default: none)
-# - cleanup: <post-test cleanup cmd to run> (default: none)
+# - post: <post-test check command> (default: none)
+# - cleanup: <post-test cleanup cmd> (default: none)
#
# Note that filters are necessary for stderr results to filter out things that
# always change, eg. process id numbers.
@@ -67,7 +67,7 @@
#
# The prerequisite command, if present, must return 0 otherwise the test is
# skipped. The post-test command, if present, must return 0 and its stdout
-# must match the expected stdout which is kept in <test>.posttest.exp[0-9]*.
+# must match the expected stdout which is kept in <test>.post.exp[0-9]*.
#
# If results don't match, the output can be found in <test>.std<strm>.out,
# and the diff between expected and actual in <test>.std<strm>.diff[0-9]*.
@@ -99,13 +99,13 @@
my $stdout_filter; # filter program to run stdout results file through
my $stderr_filter; # filter program to run stderr results file through
my $prereq; # prerequisite test to satisfy before running test
-my $posttest; # check command after running test
+my $post; # check command after running test
my $cleanup; # cleanup command to run
my @failures; # List of failed tests
my $num_tests_done = 0;
-my %num_failures = (stderr => 0, stdout => 0, posttest => 0);
+my %num_failures = (stderr => 0, stdout => 0, post => 0);
# Default valgrind to use is this build tree's (uninstalled) one
my $valgrind = "./coregrind/valgrind";
@@ -192,7 +192,7 @@
# Defaults.
($vgopts, $prog, $args) = ("", undef, "");
($stdout_filter, $stderr_filter) = (undef, undef);
- ($prereq, $posttest, $cleanup) = (undef, undef, undef);
+ ($prereq, $post, $cleanup) = (undef, undef, undef);
# Every test directory must have a "filter_stderr"
$stderr_filter = validate_program(".", $default_stderr_filter, 1, 1);
@@ -214,8 +214,8 @@
$stderr_filter = validate_program(".", $1, 1, 1);
} elsif ($line =~ /^\s*prereq:\s*(.*)$/) {
$prereq = $1;
- } elsif ($line =~ /^\s*posttest:\s*(.*)$/) {
- $posttest = $1;
+ } elsif ($line =~ /^\s*post:\s*(.*)$/) {
+ $post = $1;
} elsif ($line =~ /^\s*cleanup:\s*(.*)$/) {
$cleanup = $1;
} else {
@@ -236,7 +236,9 @@
# propagate a Ctrl-C enabling us to quit.
sub mysystem($)
{
- (system($_[0]) != 2) or exit 1; # 2 is SIGINT
+ my $exit_code = system($_[0]);
+ ($exit_code == 2) and exit 1; # 2 is SIGINT
+ return $exit_code;
}
# from a directory name like "/foo/cachesim/tests/" determine the tool name
@@ -332,15 +334,15 @@
do_diffs($fullname, $name, "stderr", \@stderr_exps);
# Maybe do post-test check
- if (defined $posttest) {
- if (mysystem("$posttest > $name.posttest.out") != 0) {
- print("posttest failed: $posttest\n");
- $num_failures{"posttest"}++;
+ if (defined $post) {
+ if (mysystem("$post > $name.post.out") != 0) {
+ print("post check failed: $post\n");
+ $num_failures{"post"}++;
} else {
- # Find all the .posttest.exp files. If none, use /dev/null.
- my @posttest_exps = <$name.posttest.exp*>;
- @posttest_exps = ( "/dev/null" ) if (0 == scalar @posttest_exps);
- do_diffs($fullname, $name, "posttest", \@posttest_exps);
+ # Find all the .post.exp files. If none, use /dev/null.
+ my @post_exps = <$name.post.exp*>;
+ @post_exps = ( "/dev/null" ) if (0 == scalar @post_exps);
+ do_diffs($fullname, $name, "post", \@post_exps);
}
}
@@ -413,11 +415,11 @@
my $x = ( $num_tests_done == 1 ? "test" : "tests" );
printf("\n== %d test%s, %d stderr failure%s, %d stdout failure%s, "
- . "%d posttest failure%s ==\n",
+ . "%d post failure%s ==\n",
$num_tests_done, plural($num_tests_done),
$num_failures{"stderr"}, plural($num_failures{"stderr"}),
$num_failures{"stdout"}, plural($num_failures{"stdout"}),
- $num_failures{"posttest"}, plural($num_failures{"posttest"}));
+ $num_failures{"post"}, plural($num_failures{"post"}));
foreach my $failure (@failures) {
print "$failure\n";
@@ -472,7 +474,7 @@
if (0 == $num_failures{"stdout"} &&
0 == $num_failures{"stderr"} &&
- 0 == $num_failures{"posttest"}) {
+ 0 == $num_failures{"post"}) {
exit 0;
} else {
exit 1;
|
|
From: <sv...@va...> - 2007-09-18 06:38:43
|
Author: njn
Date: 2007-09-18 07:38:43 +0100 (Tue, 18 Sep 2007)
New Revision: 6858
Log:
Print output to file. Currently hard-wired to go to "massif.out".
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-09-17 23:15:35 UTC (rev 6857)
+++ branches/MASSIF2/massif/ms_main.c 2007-09-18 06:38:43 UTC (rev 6858)
@@ -326,8 +326,6 @@
//--- Globals ---//
//------------------------------------------------------------//
-#define P VG_(printf)
-
// Make these signed so things are more obvious if they go negative.
static SSizeT sigstacks_szB = 0; // Current signal stacks space sum
static SSizeT heap_szB = 0; // Live heap size
@@ -492,14 +490,15 @@
static void pp_XPt(XPt* xpt)
{
Int i;
- P("XPt (%p):\n", xpt);
- P("- ip: : %p\n", (void*)xpt->ip);
- P("- curr_szB : %ld\n", xpt->curr_szB);
- P("- parent : %p\n", xpt->parent);
- P("- n_children : %d\n", xpt->n_children);
- P("- max_children: %d\n", xpt->max_children);
+
+ VG_(printf)("XPt (%p):\n", xpt);
+ VG_(printf)("- ip: : %p\n", (void*)xpt->ip);
+ VG_(printf)("- curr_szB : %ld\n", xpt->curr_szB);
+ VG_(printf)("- parent : %p\n", xpt->parent);
+ VG_(printf)("- n_children : %d\n", xpt->n_children);
+ VG_(printf)("- max_children: %d\n", xpt->max_children);
for (i = 0; i < xpt->n_children; i++) {
- P("- children[%2d]: %p\n", i, xpt->children[i]);
+ VG_(printf)("- children[%2d]: %p\n", i, xpt->children[i]);
}
}
@@ -1361,25 +1360,19 @@
//--- Writing snapshots ---//
//------------------------------------------------------------//
-#if 0
-static Char* make_filename(Char* dir, Char* suffix)
-{
- Char* filename;
+// XXX: do the filename properly, eventually
+static Char* massif_out_file = "massif.out";
- /* Block is big enough for dir name + massif.<pid>.<suffix> */
- filename = VG_(malloc)((VG_(strlen)(dir) + 32)*sizeof(Char));
- VG_(sprintf)(filename, "%s/massif.%d%s", dir, VG_(getpid)(), suffix);
+#define BUF_SIZE 1024
+Char buf[1024];
- return filename;
-}
+// XXX: implement f{,n}printf in m_libcprint.c eventually, and use it here.
+// Then change Cachegrind to use it too.
+#define FP(format, args...) ({ \
+ VG_(snprintf)(buf, BUF_SIZE, format, ##args); \
+ VG_(write)(fd, (void*)buf, VG_(strlen)(buf)); \
+})
-static void file_err ( Char* file )
-{
- VG_(message)(Vg_UserMsg, "error: can't open output file '%s'", file );
- VG_(message)(Vg_UserMsg, " ... so profile results will be missing.");
-}
-#endif
-
// Nb: uses a static buffer, each call trashes the last string returned.
static Char* make_perc(ULong x, ULong y)
{
@@ -1407,7 +1400,7 @@
return (xpt->curr_szB * 10000 / curr_total_szB >= clo_threshold);
}
-static void pp_snapshot_XPt(XPt* xpt, Int depth, Char* depth_str,
+static void pp_snapshot_XPt(Int fd, XPt* xpt, Int depth, Char* depth_str,
Int depth_str_len,
SizeT curr_heap_szB, SizeT curr_total_szB)
{
@@ -1455,7 +1448,7 @@
ip_desc = VG_(describe_IP)(xpt->ip-1, ip_desc, BUF_LEN);
}
perc = make_perc(xpt->curr_szB, curr_total_szB);
- P("%sn%d: %ld %s\n", depth_str, n_child_entries, xpt->curr_szB, ip_desc);
+ FP("%sn%d: %ld %s\n", depth_str, n_child_entries, xpt->curr_szB, ip_desc);
// Indent.
tl_assert(depth+1 < depth_str_len-1); // -1 for end NUL char
@@ -1465,7 +1458,7 @@
// Print the children.
for (i = 0; i < n_sig_children; i++) {
XPt* child = xpt->children[i];
- pp_snapshot_XPt(child, depth+1, depth_str, depth_str_len,
+ pp_snapshot_XPt(fd, child, depth+1, depth_str, depth_str_len,
curr_heap_szB, curr_total_szB);
printed_children_szB += child->curr_szB;
}
@@ -1476,7 +1469,7 @@
Char* other = ( 0 == i ? "" : "other " );
SizeT unprinted_children_szB = xpt->curr_szB - printed_children_szB;
perc = make_perc(unprinted_children_szB, curr_total_szB);
- P("%sn0: %ld in %d %sinsignificant place%s\n",
+ FP("%sn0: %ld in %d %sinsignificant place%s\n",
depth_str, unprinted_children_szB, n_insig_children, other, s);
}
@@ -1485,18 +1478,18 @@
depth_str[depth+1] = '\0';
}
-static void pp_snapshot(Snapshot* snapshot, Int snapshot_n)
+static void pp_snapshot(Int fd, Snapshot* snapshot, Int snapshot_n)
{
sanity_check_snapshot(snapshot);
- P("#--------------------------------\n");
- P("snapshot=%d\n", snapshot_n);
- P("#--------------------------------\n");
- P("time=%lu\n", snapshot->time);
- P("mem_total_B=%lu\n", snapshot->total_szB);
- P("mem_heap_B=%lu\n", snapshot->heap_szB);
- P("mem_heap_admin_B=%lu\n", snapshot->heap_admin_szB);
- P("mem_stacks_B=%lu\n", snapshot->stacks_szB);
+ FP("#--------------------------------\n");
+ FP("snapshot=%d\n", snapshot_n);
+ FP("#--------------------------------\n");
+ FP("time=%lu\n", snapshot->time);
+ FP("mem_total_B=%lu\n", snapshot->total_szB);
+ FP("mem_heap_B=%lu\n", snapshot->heap_szB);
+ FP("mem_heap_admin_B=%lu\n", snapshot->heap_admin_szB);
+ FP("mem_stacks_B=%lu\n", snapshot->stacks_szB);
if (is_detailed_snapshot(snapshot)) {
// Detailed snapshot -- print heap tree
@@ -1505,48 +1498,62 @@
Char* depth_str = VG_(malloc)(sizeof(Char) * depth_str_len);
depth_str[0] = '\0'; // Initialise depth_str to "".
- P("heap_tree=...\n");
- pp_snapshot_XPt(snapshot->alloc_xpt, 0, depth_str,
+ FP("heap_tree=...\n");
+ pp_snapshot_XPt(fd, snapshot->alloc_xpt, 0, depth_str,
depth_str_len, snapshot->heap_szB,
snapshot->total_szB);
VG_(free)(depth_str);
} else {
- P("heap_tree=empty\n");
+ FP("heap_tree=empty\n");
}
}
-// XXX: rename
static void write_detailed_snapshots(void)
{
- Int i;
+ Int i, fd;
+ SysRes sres;
+ sres = VG_(open)(massif_out_file, VKI_O_CREAT|VKI_O_TRUNC|VKI_O_WRONLY,
+ VKI_S_IRUSR|VKI_S_IWUSR);
+ if (sres.isError) {
+ // If the file can't be opened for whatever reason (conflict
+ // between multiple cachegrinded processes?), give up now.
+ VG_(message)(Vg_UserMsg,
+ "error: can't open output file '%s'", massif_out_file );
+ VG_(message)(Vg_UserMsg,
+ " ... so profiling results will be missing.");
+ return;
+ } else {
+ fd = sres.res;
+ }
+
// Print description lines.
- P("desc: XXX\n");
+ FP("desc: XXX\n");
// Print "cmd:" line.
- P("cmd: ");
+ FP("cmd: ");
if (VG_(args_the_exename)) {
- P("%s", VG_(args_the_exename));
+ FP("%s", VG_(args_the_exename));
for (i = 0; i < VG_(sizeXA)( VG_(args_for_client) ); i++) {
HChar* arg = * (HChar**) VG_(indexXA)( VG_(args_for_client), i );
if (arg)
- P(" %s", arg);
+ FP(" %s", arg);
}
} else {
- P(" ???");
+ FP(" ???");
}
- P("\n");
+ FP("\n");
- P("time_unit: ");
- if (clo_time_unit == TimeMS) P("ms\n");
- else if (clo_time_unit == TimeB) P("B\n");
+ FP("time_unit: ");
+ if (clo_time_unit == TimeMS) FP("ms\n");
+ else if (clo_time_unit == TimeB) FP("B\n");
else tl_assert2(0, "bad --time-unit value");
for (i = 0; i < next_snapshot; i++) {
Snapshot* snapshot = & snapshots[i];
- pp_snapshot(snapshot, i); // Detailed snapshot!
+ pp_snapshot(fd, snapshot, i); // Detailed snapshot!
}
}
|
|
From: Tom H. <th...@cy...> - 2007-09-18 02:31:08
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-09-18 03:15:02 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-18 02:23:27
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-09-18 03:10:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-18 02:17:24
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-09-18 03:05:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-18 02:15:21
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-09-18 03:00:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-09-18 00:17:09
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-09-18 02:00:01 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |