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
(10) |
2
(8) |
3
(17) |
4
(28) |
5
(22) |
6
(8) |
|
7
(8) |
8
(22) |
9
(12) |
10
(17) |
11
(14) |
12
(15) |
13
(6) |
|
14
(9) |
15
(9) |
16
(16) |
17
(13) |
18
(18) |
19
(7) |
20
(5) |
|
21
(6) |
22
(5) |
23
(11) |
24
(5) |
25
(11) |
26
(7) |
27
(15) |
|
28
(11) |
29
(12) |
30
(12) |
31
(15) |
|
|
|
|
From: Dilip M. R. <Dil...@kp...> - 2007-10-09 13:29:48
|
Hi, >> The header file libvex_basictypes.h is a necessary part of the VEX >> library, and you won't be able to compile without it. If you have a >> correctly checked-out copy of the source code, there should be a = "VEX" >> subdirectory under "valgrind", and this header file should be >> "VEX/pub/libvex_basictypes.h". VEX is kept in a separate repository >> that's linked to the Valgrind repository as an "externals = definition"; >> recent versions of subversion should check it out for you >> automatically, but perhaps you need to upgrade, or check it out >> separately. Or, if you do have that file, something about the >> configuration processes is giving you the wrong include paths Thanks for your direction, I added include path in cflags in coregrind = makefile "-I /usr/local/include/Valgrind/" this resolved the earlier = error of missing file. But still I don't know, why this was not taken = care while configuration? >> These errors would seem to indicate that the file in question is=20 >> corrupted in your copy. I don't think that include file should have = any=20 >> non-ASCII characters in it. Yeah, you were true the file was corrupted. So I copied these files from = sources downloaded from Valgrind.org. But still I am getting following error messages during make=20 Kindly help me to resolve=20 In file included from m_errormgr.c:46: pub_core_tooliface.h:109: error: expected specifier-qualifier-list = before =E2IRSB=E2 m_errormgr.c: In function =E2eq_Error=E2: m_errormgr.c:276: error: =E2VgToolInterface=E2 has no member named = =E2tool_eq_Error=E2 m_errormgr.c:276: error: =E2VgToolInterface=E2 has no member named = =E2tool_eq_Error=E2 m_errormgr.c:276: warning: left-hand operand of comma expression has no = effect m_errormgr.c: In function =E2pp_Error=E2: m_errormgr.c:310: error: =E2VgToolInterface=E2 has no member named = =E2tool_pp_Error=E2 m_errormgr.c:310: error: =E2VgToolInterface=E2 has no member named = =E2tool_pp_Error=E2 m_errormgr.c:310: warning: left-hand operand of comma expression has no = effect m_errormgr.c:310: warning: statement with no effect m_errormgr.c: In function =E2gen_suppression=E2: m_errormgr.c:429: error: =E2VgToolInterface=E2 has no member named = =E2tool_get_error_name=E2 m_errormgr.c:429: error: =E2VgToolInterface=E2 has no member named = =E2tool_get_error_name=E2 m_errormgr.c:429: warning: left-hand operand of comma expression has no = effect m_errormgr.c:439: error: =E2VgToolInterface=E2 has no member named = =E2tool_print_extra_suppression_info=E2 m_errormgr.c:439: error: =E2VgToolInterface=E2 has no member named = =E2tool_print_extra_suppression_info=E2 m_errormgr.c:439: warning: left-hand operand of comma expression has no = effect m_errormgr.c:439: warning: statement with no effect m_errormgr.c: In function =E2vgPlain_maybe_record_error=E2: m_errormgr.c:612: error: =E2VgToolInterface=E2 has no member named = =E2tool_update_extra=E2 m_errormgr.c:612: error: =E2VgToolInterface=E2 has no member named = =E2tool_update_extra=E2 m_errormgr.c:612: warning: left-hand operand of comma expression has no = effect m_errormgr.c: In function =E2vgPlain_unique_error=E2: With kind regards, Dilip Malinur Ramesh -----Original Message----- From: Stephen McCamant [mailto:sm...@cs...]=20 Sent: Monday, October 08, 2007 11:05 PM To: Dilip Malinur Ramesh Cc: val...@li... Subject: [Valgrind-developers] Re: Build Failure [Off-topic suggestion: you mailer's character-set seems to be configured incorrectly, in that what should be quotation marks in GCC's output are encoded as byte value 0xE2, but the message's headers describe it as ISO-8859-1, a character set in which 0xE2 is "lowercase a with circumflex"] >>>>> "DMR" =3D=3D Dilip Malinur Ramesh <Dil...@kp...> = writes: DMR> Hi, DMR> I have checked out Valgrind code from SVN.=20 DMR> I am trying to add a dummy tool. I am referring "Writing New DMR> Tool" section of the user manual. DMR> I am successful with aclocal, autoheader, automake autoconf and DMR> configure stages, "Make install" is exiting after generating DMR> following errors: DMR> In file included from pub_core_debuglog.h:50, DMR> from launcher.c:48: DMR> ../include/pub_tool_basics.h:47:31: error: libvex_basictypes.h: DMR> No such file or directory The header file libvex_basictypes.h is a necessary part of the VEX library, and you won't be able to compile without it. If you have a correctly checked-out copy of the source code, there should be a "VEX" subdirectory under "valgrind", and this header file should be "VEX/pub/libvex_basictypes.h". VEX is kept in a separate repository that's linked to the Valgrind repository as an "externals definition"; recent versions of subversion should check it out for you automatically, but perhaps you need to upgrade, or check it out separately. Or, if you do have that file, something about the configuration processes is giving you the wrong include paths. DMR> In file included from pub_core_debuglog.h:50, DMR> from launcher.c:48: DMR> ../include/pub_tool_basics.h:77: error: expected "=3D", ",", ";", = "asm" or "__attribute__" before "Off64T" DMR> ../include/pub_tool_basics.h:92: error: expected "=3D", ",", ";", = "asm" or "__attribute__" before "ThreadId" DMR> ../include/pub_tool_basics.h:119: error: expected = specifier-qualifier-list before "Bool" DMR> In file included from launcher.c:48: DMR> pub_core_debuglog.h:59: error: expected ")" before "level" DMR> pub_core_debuglog.h:66: error: expected "=3D", ",", ";", "asm" or = "__attribute__" before "vgPlain_debugLog_getLevel" DMR> pub_core_debuglog.h:73: error: expected ")" before "level" DMR> pub_core_debuglog.h:80: error: expected "=3D", ",", ";", "asm" or = "__attribute__" before "vgPlain_debugLog_vprintf" I believe the above errors are all side-effects of the missing include above: GCC is unable to parse other declarations because it is missing the typedefs in that file. DMR> In file included from pub_core_libcproc.h:40, DMR> from launcher.c:49: DMR> ../include/pub_tool_libcproc.h:1: error: stray "\377" in program DMR> ../include/pub_tool_libcproc.h:1: error: stray "\377" in program DMR> ../include/pub_tool_libcproc.h:1: error: stray "\377" in program DMR> ../include/pub_tool_libcproc.h:1: error: stray "\377" in program DMR> ../include/pub_tool_libcproc.h:1: error: stray "\377" in program These errors would seem to indicate that the file in question is corrupted in your copy. I don't think that include file should have any non-ASCII characters in it. DMR> Due to some limitation, I have checked out the code in one system DMR> and had to build it in anther. DMR> Is the error due to this? There's no reason why it shouldn't be possible to build the code on a different machine than you checked it out to. However, since both of the problems above appear to be about having the incorrect contents of the source code directories, it seems likely that the way you copied the files to the build machine is part of the problem you're having. If you were able to build a release that was distributed as a compressed .tar file, you might try using a .tar archive to do your copying. Hope this helps, -- Stephen |
|
From: <sv...@va...> - 2007-10-09 07:39:03
|
Author: njn
Date: 2007-10-09 08:39:05 +0100 (Tue, 09 Oct 2007)
New Revision: 6970
Log:
Add C++ allocators to alloc_fns, necessary for C++ programs like konqueror
to work.
Modified:
branches/MASSIF2/massif/ms_main.c
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-09 06:49:05 UTC (rev 6969)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-09 07:39:05 UTC (rev 6970)
@@ -32,6 +32,8 @@
//---------------------------------------------------------------------------
// Todo:
// - do snapshots on client requests
+// - C++ tests -- for each of the allocators, and overloaded versions of
+// them (see 'init_alloc_fns').
// - Add ability to draw multiple graphs, eg. heap-only, stack-only, total.
// Give each graph a title. (try to do it generically!)
// - make file format more generic. Obstacles:
@@ -39,17 +41,17 @@
// - preset column widths for stats are not generic
// - preset column headers are not generic
// - "Massif arguments:" line is not generic
-// - consider 'instructions executed' as a time unit -- more regular than
-// ms, less artificial than B (bug #121629)
// - do a graph-drawing test
// - write a good basic test that shows how the tool works, suitable for
// documentation
-//
-// Misc:
// - with --heap=no, --heap-admin still counts. should it?
-// - in each XPt, record both bytes and the number of live allocations? (or
-// even total allocations and total deallocations?)
//
+// Possible ideas for the future:
+// - Consider 'instructions executed' as a time unit -- more regular than
+// ms, less artificial than B (bug #121629).
+// - In each XPt, record both bytes and the number of allocations, and
+// possibly the global number of allocations.
+//
// Dumping the results to file:
// - work out the file format (Josef wants Callgrind format, Donna wants
// XML, Nick wants something easy to read in Perl)
@@ -274,21 +276,6 @@
//--- Alloc fns ---//
//------------------------------------------------------------//
-// Nb: I used to have the following four C++ global overloadable allocators
-// in alloc_fns:
-// operator new(unsigned)
-// operator new[](unsigned)
-// operator new(unsigned, std::nothrow_t const&)
-// operator new[](unsigned, std::nothrow_t const&)
-// [Dennis Lubert says these are also necessary on AMD64:
-// "operator new(unsigned long)",
-// "operator new[](unsigned long)",
-// "operator new(unsigned long, std::nothrow_t const&)",
-// "operator new[](unsigned long, std::nothrow_t const&)",
-// ]
-// But someone might be interested in seeing them. If they're not, they can
-// specify them with --alloc-fn.
-
OSet* alloc_fns;
static void init_alloc_fns(void)
@@ -302,6 +289,20 @@
DO("memalign" );
DO("__builtin_new" );
DO("__builtin_vec_new");
+ // The following C++ allocators are overloadable. It's conceivable that
+ // someone would want to not consider them as allocators, in order to see
+ // what's happening beneath them. But if they're not in alloc_fns, then
+ // when they're not overloaded they won't be seen as alloc-fns, which
+ // will screw things up. So we always consider them to be, and tough
+ // luck for anyone who wants to see inside them.
+ DO("operator new(unsigned)");
+ DO("operator new[](unsigned)");
+ DO("operator new(unsigned long)");
+ DO("operator new[](unsigned long)");
+ DO("operator new(unsigned, std::nothrow_t const&)");
+ DO("operator new[](unsigned, std::nothrow_t const&)");
+ DO("operator new(unsigned long, std::nothrow_t const&)");
+ DO("operator new[](unsigned long, std::nothrow_t const&)");
}
static Bool is_alloc_fn(Char* fnname)
@@ -656,6 +657,8 @@
static
Int get_IPs( ThreadId tid, Bool is_custom_alloc, Addr ips[])
{
+ #define BUF_LEN 1024
+ Char buf[BUF_LEN];
Int n_ips, i, n_alloc_fns_removed = 0;
Int overestimate;
Bool fewer_IPs_than_asked_for = False;
@@ -703,9 +706,6 @@
// Filter uninteresting entries out of the stack trace. n_ips is
// updated accordingly.
for (i = n_ips-1; i >= 0; i--) {
- #define BUF_LEN 1024
- Char buf[BUF_LEN];
-
if (VG_(get_fnname)(ips[i], buf, BUF_LEN)) {
// If it's a main-or-below-main function, we (may) want to
@@ -734,9 +734,19 @@
// There must be at least one alloc function, unless the client used
// MALLOCLIKE_BLOCK.
- if (!is_custom_alloc)
- tl_assert2(n_alloc_fns_removed > 0,
- "n_alloc_fns_removed = %s\n", n_alloc_fns_removed);
+ if (!is_custom_alloc) {
+ if (n_alloc_fns_removed <= 0) {
+ // Hmm. Print out the stack trace before aborting.
+ for (i = 0; i < n_ips; i++) {
+ if (VG_(get_fnname)(ips[i], buf, BUF_LEN)) {
+ VG_(message)(Vg_DebugMsg, "--> %s", buf);
+ } else {
+ VG_(message)(Vg_DebugMsg, "--> ???", buf);
+ }
+ }
+ tl_assert2(0, "Didn't find any alloc functions in the stack trace");
+ }
+ }
// Did we get enough IPs after filtering? If so, redo=False.
if (n_ips >= clo_depth) {
@@ -1929,7 +1939,8 @@
VG_(details_name) ("Massif");
VG_(details_version) (NULL);
VG_(details_description) ("a space profiler");
- VG_(details_copyright_author)("Copyright (C) 2003, Nicholas Nethercote");
+ VG_(details_copyright_author)(
+ "Copyright (C) 2003-2007, and GNU GPL'd, by Nicholas Nethercote");
VG_(details_bug_reports_to) (VG_BUGS_TO);
// Basic functions
|
|
From: <sv...@va...> - 2007-10-09 06:49:07
|
Author: njn
Date: 2007-10-09 07:49:05 +0100 (Tue, 09 Oct 2007)
New Revision: 6969
Log:
- Added --detailed-freq and --max-snapshots options.
- Increased max --depth value from 50 to 200.
- Adding some sanity checking on numeric command line options.
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-09 03:11:48 UTC (rev 6968)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-09 06:49:05 UTC (rev 6969)
@@ -44,9 +44,6 @@
// - do a graph-drawing test
// - write a good basic test that shows how the tool works, suitable for
// documentation
-// - make everything configurable, eg. min/max number of snapshots (which
-// also determine culling proportion), frequency of detailed snapshots,
-// etc.
//
// Misc:
// - with --heap=no, --heap-admin still counts. should it?
@@ -326,7 +323,7 @@
//--- Command line args ---//
//------------------------------------------------------------//
-#define MAX_DEPTH 50
+#define MAX_DEPTH 200
typedef enum { TimeMS, TimeB } TimeUnit;
@@ -339,12 +336,14 @@
}
}
-static Bool clo_heap = True;
-static UInt clo_heap_admin = 8;
-static Bool clo_stacks = True;
-static UInt clo_depth = 8; // XXX: too low?
-static UInt clo_threshold = 100; // 100 == 1%
-static UInt clo_time_unit = TimeMS;
+static Bool clo_heap = True;
+static UInt clo_heap_admin = 8;
+static Bool clo_stacks = True;
+static UInt clo_depth = 8; // XXX: too low?
+static UInt clo_threshold = 100; // 100 == 1%
+static UInt clo_time_unit = TimeMS;
+static UInt clo_detailed_freq = 10;
+static UInt clo_max_snapshots = 100;
static XArray* args_for_massif;
@@ -353,15 +352,16 @@
// Remember the arg for later use.
VG_(addToXA)(args_for_massif, &arg);
- VG_BOOL_CLO(arg, "--heap", clo_heap)
- else VG_BOOL_CLO(arg, "--stacks", clo_stacks)
+ VG_BOOL_CLO(arg, "--heap", clo_heap)
+ else VG_BOOL_CLO(arg, "--stacks", clo_stacks)
- // XXX: currently allows negative heap admin sizes! Abort if negative.
- else VG_NUM_CLO (arg, "--heap-admin", clo_heap_admin)
- else VG_BNUM_CLO(arg, "--depth", clo_depth, 1, MAX_DEPTH)
+ else VG_NUM_CLO(arg, "--heap-admin", clo_heap_admin)
+ else VG_NUM_CLO(arg, "--depth", clo_depth)
// XXX: use a fractional number, so no division by 100
- else VG_NUM_CLO(arg, "--threshold", clo_threshold)
+ else VG_NUM_CLO(arg, "--threshold", clo_threshold)
+ else VG_NUM_CLO(arg, "--detailed-freq", clo_detailed_freq)
+ else VG_NUM_CLO(arg, "--max-snapshots", clo_max_snapshots)
else if (VG_CLO_STREQ(arg, "--time-unit=ms")) clo_time_unit = TimeMS;
else if (VG_CLO_STREQ(arg, "--time-unit=B")) clo_time_unit = TimeB;
@@ -389,6 +389,8 @@
" total size, <n>=0 shows all nodes) [100]\n"
" --time-unit=ms|B time unit, milliseconds or bytes\n"
" alloc'd/dealloc'd on the heap [ms]\n"
+" --detailed-freq=<N> every Nth snapshot should be detailed [10]\n"
+" --max-snapshots=<N> maximum number of snapshots recorded [100]\n"
);
VG_(replacement_malloc_print_usage)();
}
@@ -652,7 +654,7 @@
// Nb: it's possible to end up with an empty trace, eg. if 'main' is marked
// as an alloc-fn. This is ok.
static
-Int get_IPs( ThreadId tid, Bool is_custom_alloc, Addr ips[], Int max_ips)
+Int get_IPs( ThreadId tid, Bool is_custom_alloc, Addr ips[])
{
Int n_ips, i, n_alloc_fns_removed = 0;
Int overestimate;
@@ -756,12 +758,12 @@
// Gets an XCon and puts it in the tree. Returns the XCon's bottom-XPt.
static XPt* get_XCon( ThreadId tid, Bool is_custom_alloc )
{
- static Addr ips[MAX_IPS]; // Static to minimise stack size.
+ Addr ips[MAX_IPS];
Int i;
XPt* xpt = alloc_xpt;
// After this call, the IPs we want are in ips[0]..ips[n_ips-1].
- Int n_ips = get_IPs(tid, is_custom_alloc, ips, MAX_IPS);
+ Int n_ips = get_IPs(tid, is_custom_alloc, ips);
// Now do the search/insertion of the XCon. 'L' is the loop counter,
// being the index into ips[].
@@ -822,11 +824,6 @@
// limit again, we again cull and then take them even more slowly, and so
// on.
-// XXX: if the program is really short, we may get no detailed snapshots...
-// that's bad, do something about it.
-#define MAX_N_SNAPSHOTS 100 // Keep it even, for simplicity
-#define DETAILED_SNAPSHOT_FREQ 10 // Every Nth snapshot will be detailed
-
// Time is measured either in ms or bytes, depending on the --time-unit
// option. It's a Long because it can exceed 32-bits reasonably easily, and
// because we need to allow negative values to represent unset times.
@@ -853,8 +850,8 @@
} // otherwise NULL
Snapshot;
-static UInt next_snapshot_i = 0; // Index of where next snapshot will go.
-static Snapshot snapshots[MAX_N_SNAPSHOTS];
+static UInt next_snapshot_i = 0; // Index of where next snapshot will go.
+static Snapshot* snapshots; // Array of snapshots.
static Bool is_snapshot_in_use(Snapshot* snapshot)
{
@@ -898,7 +895,7 @@
for (i = 0; i < next_snapshot_i; i++) {
tl_assert( is_snapshot_in_use( & snapshots[i] ));
}
- for ( ; i < MAX_N_SNAPSHOTS; i++) {
+ for ( ; i < clo_max_snapshots; i++) {
tl_assert(!is_snapshot_in_use( & snapshots[i] ));
}
}
@@ -974,14 +971,14 @@
// Sets j to the index of the first not-yet-removed snapshot at or after i
#define FIND_SNAPSHOT(i, j) \
for (j = i; \
- j < MAX_N_SNAPSHOTS && !is_snapshot_in_use(&snapshots[j]); \
+ j < clo_max_snapshots && !is_snapshot_in_use(&snapshots[j]); \
j++) { }
VERB(1, "Culling...");
// First we remove enough snapshots by clearing them in-place. Once
// that's done, we can slide the remaining ones down.
- for (i = 0; i < MAX_N_SNAPSHOTS/2; i++) {
+ for (i = 0; i < clo_max_snapshots/2; i++) {
// Find the snapshot representing the smallest timespan. The timespan
// for snapshot n = d(N-1,N)+d(N,N+1), where d(A,B) is the time between
// snapshot A and B. We don't consider the first and last snapshots for
@@ -996,7 +993,7 @@
FIND_SNAPSHOT(j+1, jn);
min_timespan = 0x7fffffffffffffffLL;
min_j = -1;
- while (jn < MAX_N_SNAPSHOTS) {
+ while (jn < clo_max_snapshots) {
Time timespan = snapshots[jn].time - snapshots[jp].time;
tl_assert(timespan >= 0);
// Nb: We never cull the peak snapshot.
@@ -1027,7 +1024,7 @@
// i. Then slide everything down.
for (i = 0; is_snapshot_in_use( &snapshots[i] ); i++) { }
for (j = i; !is_snapshot_in_use( &snapshots[j] ); j++) { }
- for ( ; j < MAX_N_SNAPSHOTS; j++) {
+ for ( ; j < clo_max_snapshots; j++) {
if (is_snapshot_in_use( &snapshots[j] )) {
snapshots[i++] = snapshots[j];
clear_snapshot(&snapshots[j]);
@@ -1075,7 +1072,7 @@
// Print remaining snapshots, if necessary.
if (VG_(clo_verbosity) > 1) {
VERB(1, "Finished culling (%3d of %3d deleted)",
- n_deleted, MAX_N_SNAPSHOTS);
+ n_deleted, clo_max_snapshots);
for (i = 0; i < next_snapshot_i; i++) {
VERB_snapshot(1, " post-cull", i);
}
@@ -1170,7 +1167,7 @@
static Time min_time_interval = 0;
// Zero allows startup snapshot.
static Time earliest_possible_time_of_next_snapshot = 0;
- static Int n_snapshots_until_next_detailed = DETAILED_SNAPSHOT_FREQ - 1;
+ static Int n_snapshots_since_last_detailed = 0;
Snapshot* snapshot;
Bool is_detailed;
@@ -1184,7 +1181,7 @@
n_skipped_snapshots_since_last_snapshot++;
return;
}
- is_detailed = (0 == n_snapshots_until_next_detailed);
+ is_detailed = (clo_detailed_freq-1 == n_snapshots_since_last_detailed);
break;
case Peak: {
@@ -1212,9 +1209,9 @@
// Record if it was detailed.
if (is_detailed) {
- n_snapshots_until_next_detailed = DETAILED_SNAPSHOT_FREQ - 1;
+ n_snapshots_since_last_detailed = 0;
} else {
- n_snapshots_until_next_detailed--;
+ n_snapshots_since_last_detailed++;
}
// Update peak data, if it's a Peak snapshot.
@@ -1248,7 +1245,7 @@
// Cull the entries, if our snapshot table is full.
next_snapshot_i++;
- if (MAX_N_SNAPSHOTS == next_snapshot_i) {
+ if (clo_max_snapshots == next_snapshot_i) {
min_time_interval = cull_snapshots();
}
@@ -1875,10 +1872,34 @@
static void ms_post_clo_init(void)
{
- Int i = 1;
+ Int i;
Word alloc_fn_word;
+ // Check options.
+ if (clo_heap_admin < 0 || clo_heap_admin > 1024) {
+ VG_(message)(Vg_UserMsg, "--heap-admin must be between 0 and 1024");
+ VG_(err_bad_option)("--heap-admin");
+ }
+ if (clo_depth < 1 || clo_depth > MAX_DEPTH) {
+ VG_(message)(Vg_UserMsg, "--depth must be between 1 and %d", MAX_DEPTH);
+ VG_(err_bad_option)("--depth");
+ }
+ if (clo_threshold < 0 || clo_threshold > 10000) {
+ VG_(message)(Vg_UserMsg, "--threshold must be between 0 and 10000");
+ VG_(err_bad_option)("--threshold");
+ }
+ if (clo_detailed_freq < 1 || clo_detailed_freq > 10000) {
+ VG_(message)(Vg_UserMsg, "--detailed-freq must be between 1 and 10000");
+ VG_(err_bad_option)("--detailed-freq");
+ }
+ if (clo_max_snapshots < 10 || clo_max_snapshots > 1000) {
+ VG_(message)(Vg_UserMsg, "--max-snapshots must be between 10 and 1000");
+ VG_(err_bad_option)("--max-snapshots");
+ }
+
+ // Print alloc-fns, if necessary.
if (VG_(clo_verbosity) > 1) {
+ i = 1;
VERB(1, "alloc-fns:");
VG_(OSetWord_ResetIter)(alloc_fns);
while ( VG_(OSetWord_Next)(alloc_fns, &alloc_fn_word) ) {
@@ -1887,19 +1908,24 @@
}
}
+ // Events to track.
if (clo_stacks) {
- // Events to track.
VG_(track_new_mem_stack) ( new_mem_stack );
VG_(track_die_mem_stack) ( die_mem_stack );
VG_(track_new_mem_stack_signal) ( new_mem_stack_signal );
VG_(track_die_mem_stack_signal) ( die_mem_stack_signal );
}
+
+ // Initialise snapshot array, and sanity-check it.
+ snapshots = VG_(malloc)(sizeof(Snapshot) * clo_max_snapshots);
+ for (i = 0; i < clo_max_snapshots; i++) {
+ clear_snapshot( & snapshots[i] );
+ }
+ sanity_check_snapshots_array();
}
static void ms_pre_clo_init(void)
{
- Int i;
-
VG_(details_name) ("Massif");
VG_(details_version) (NULL);
VG_(details_description) ("a space profiler");
@@ -1936,12 +1962,6 @@
// Dummy node at top of the context structure.
alloc_xpt = new_XPt(/*ip*/0, /*parent*/NULL);
- // Initialise snapshot array, and sanity check it.
- for (i = 0; i < MAX_N_SNAPSHOTS; i++) {
- clear_snapshot( & snapshots[i] );
- }
- sanity_check_snapshots_array();
-
// Initialise alloc_fns.
init_alloc_fns();
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 03:11:48 UTC (rev 6968)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 06:49:05 UTC (rev 6969)
@@ -20,6 +20,7 @@
long-time.post.exp long-time.stderr.exp long-time.vgtest \
null.post.exp null.stderr.exp null.vgtest \
one.post.exp one.stderr.exp one.vgtest \
+ params.post.exp params.stderr.exp params.vgtest \
peak.post.exp peak.stderr.exp peak.vgtest \
realloc.post.exp realloc.stderr.exp realloc.vgtest \
thresholds_0_0.post.exp thresholds_0_0.stderr.exp thresholds_0_0.vgtest \
|
|
From: <sv...@va...> - 2007-10-09 03:11:46
|
Author: njn
Date: 2007-10-09 04:11:48 +0100 (Tue, 09 Oct 2007)
New Revision: 6968
Log:
fix up line numbers
Modified:
branches/MASSIF2/massif/tests/deep-A.post.exp
branches/MASSIF2/massif/tests/deep-B.post.exp
branches/MASSIF2/massif/tests/deep-C.post.exp
branches/MASSIF2/massif/tests/deep-D.post.exp
Modified: branches/MASSIF2/massif/tests/deep-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
+++ branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-09 03:11:48 UTC (rev 6968)
@@ -45,14 +45,14 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x804838D: a12 (deep.c:16)
- ->92.59% (900B) 0x80483A3: a11 (deep.c:17)
- ->92.59% (900B) 0x80483B9: a10 (deep.c:18)
- ->92.59% (900B) 0x80483CF: a9 (deep.c:19)
- ->92.59% (900B) 0x80483E5: a8 (deep.c:20)
- ->92.59% (900B) 0x80483FB: a7 (deep.c:21)
- ->92.59% (900B) 0x8048411: a6 (deep.c:22)
- ->92.59% (900B) 0x8048427: a5 (deep.c:23)
+->92.59% (900B) 0x804838D: a12 (deep.c:18)
+ ->92.59% (900B) 0x80483A3: a11 (deep.c:19)
+ ->92.59% (900B) 0x80483B9: a10 (deep.c:20)
+ ->92.59% (900B) 0x80483CF: a9 (deep.c:21)
+ ->92.59% (900B) 0x80483E5: a8 (deep.c:22)
+ ->92.59% (900B) 0x80483FB: a7 (deep.c:23)
+ ->92.59% (900B) 0x8048411: a6 (deep.c:24)
+ ->92.59% (900B) 0x8048427: a5 (deep.c:25)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
+++ branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-09 03:11:48 UTC (rev 6968)
@@ -45,12 +45,12 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x8048427: a5 (deep.c:23)
- ->92.59% (900B) 0x804843D: a4 (deep.c:24)
- ->92.59% (900B) 0x8048453: a3 (deep.c:25)
- ->92.59% (900B) 0x8048469: a2 (deep.c:26)
- ->92.59% (900B) 0x804847F: a1 (deep.c:27)
- ->92.59% (900B) 0x80484B3: main (deep.c:35)
+->92.59% (900B) 0x8048427: a5 (deep.c:25)
+ ->92.59% (900B) 0x804843D: a4 (deep.c:26)
+ ->92.59% (900B) 0x8048453: a3 (deep.c:27)
+ ->92.59% (900B) 0x8048469: a2 (deep.c:28)
+ ->92.59% (900B) 0x804847F: a1 (deep.c:29)
+ ->92.59% (900B) 0x80484B3: main (deep.c:37)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-C.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
+++ branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-09 03:11:48 UTC (rev 6968)
@@ -45,9 +45,9 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x8048469: a2 (deep.c:26)
- ->92.59% (900B) 0x804847F: a1 (deep.c:27)
- ->92.59% (900B) 0x80484B3: main (deep.c:35)
+->92.59% (900B) 0x8048469: a2 (deep.c:28)
+ ->92.59% (900B) 0x804847F: a1 (deep.c:29)
+ ->92.59% (900B) 0x80484B3: main (deep.c:37)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
Modified: branches/MASSIF2/massif/tests/deep-D.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
+++ branches/MASSIF2/massif/tests/deep-D.post.exp 2007-10-09 03:11:48 UTC (rev 6968)
@@ -45,14 +45,14 @@
8 864 864 800 64 0
9 972 972 900 72 0
92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->92.59% (900B) 0x804838D: a12 (deep.c:16)
- ->92.59% (900B) 0x80483A3: a11 (deep.c:17)
- ->92.59% (900B) 0x80483B9: a10 (deep.c:18)
- ->92.59% (900B) 0x80483CF: a9 (deep.c:19)
- ->92.59% (900B) 0x80483E5: a8 (deep.c:20)
- ->92.59% (900B) 0x80483FB: a7 (deep.c:21)
- ->92.59% (900B) 0x8048411: a6 (deep.c:22)
- ->92.59% (900B) 0x8048427: a5 (deep.c:23)
+->92.59% (900B) 0x804838D: a12 (deep.c:18)
+ ->92.59% (900B) 0x80483A3: a11 (deep.c:19)
+ ->92.59% (900B) 0x80483B9: a10 (deep.c:20)
+ ->92.59% (900B) 0x80483CF: a9 (deep.c:21)
+ ->92.59% (900B) 0x80483E5: a8 (deep.c:22)
+ ->92.59% (900B) 0x80483FB: a7 (deep.c:23)
+ ->92.59% (900B) 0x8048411: a6 (deep.c:24)
+ ->92.59% (900B) 0x8048427: a5 (deep.c:25)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
|
|
From: Tom H. <th...@cy...> - 2007-10-09 02:31:11
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-10-09 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: <sv...@va...> - 2007-10-09 02:24:05
|
Author: njn
Date: 2007-10-09 03:24:03 +0100 (Tue, 09 Oct 2007)
New Revision: 6967
Log:
- Added some tests for complicated stack trace cases.
- Now allowing a stack trace with no entries, due to something like
--alloc-main, whereas previously it was aborting. Unlikely in practice,
pretty harmless, and seems better than aborting.
Added:
branches/MASSIF2/massif/tests/deep-A.post.exp
branches/MASSIF2/massif/tests/deep-A.stderr.exp
branches/MASSIF2/massif/tests/deep-A.vgtest
branches/MASSIF2/massif/tests/deep-B.post.exp
branches/MASSIF2/massif/tests/deep-B.stderr.exp
branches/MASSIF2/massif/tests/deep-B.vgtest
branches/MASSIF2/massif/tests/deep-C.post.exp
branches/MASSIF2/massif/tests/deep-C.stderr.exp
branches/MASSIF2/massif/tests/deep-C.vgtest
branches/MASSIF2/massif/tests/deep-D.post.exp
branches/MASSIF2/massif/tests/deep-D.stderr.exp
branches/MASSIF2/massif/tests/deep-D.vgtest
branches/MASSIF2/massif/tests/deep-E.post.exp
branches/MASSIF2/massif/tests/deep-E.stderr.exp
branches/MASSIF2/massif/tests/deep-E.vgtest
branches/MASSIF2/massif/tests/deep.c
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-09 01:05:04 UTC (rev 6966)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-09 02:24:03 UTC (rev 6967)
@@ -33,7 +33,7 @@
// Todo:
// - do snapshots on client requests
// - Add ability to draw multiple graphs, eg. heap-only, stack-only, total.
-// Give each graph a title.
+// Give each graph a title. (try to do it generically!)
// - make file format more generic. Obstacles:
// - unit prefixes are not generic
// - preset column widths for stats are not generic
@@ -42,10 +42,6 @@
// - consider 'instructions executed' as a time unit -- more regular than
// ms, less artificial than B (bug #121629)
// - do a graph-drawing test
-// - do tests with complicated stack traces -- big ones, ones that require
-// XCon_redo, ones that exceed --depth, etc.
-// - test what happens when alloc-fns cover an entire trace
-// (it aborts -- should give a warning and do something less drastic?)
// - write a good basic test that shows how the tool works, suitable for
// documentation
// - make everything configurable, eg. min/max number of snapshots (which
@@ -346,7 +342,7 @@
static Bool clo_heap = True;
static UInt clo_heap_admin = 8;
static Bool clo_stacks = True;
-static UInt clo_depth = 8;
+static UInt clo_depth = 8; // XXX: too low?
static UInt clo_threshold = 100; // 100 == 1%
static UInt clo_time_unit = TimeMS;
@@ -650,10 +646,11 @@
}
// Get the stack trace for an XCon, filtering out uninteresting entries:
-// alloc-fns and entries above alloc-fns, and entries below
-// main-or-below-main.
-// Eg: alloc-fn1 / alloc-fn2 / a / b / main / (below main) / c
-// becomes: a / b / main
+// alloc-fns and entries above alloc-fns, and entries below main-or-below-main.
+// Eg: alloc-fn1 / alloc-fn2 / a / b / main / (below main) / c
+// becomes: a / b / main
+// Nb: it's possible to end up with an empty trace, eg. if 'main' is marked
+// as an alloc-fn. This is ok.
static
Int get_IPs( ThreadId tid, Bool is_custom_alloc, Addr ips[], Int max_ips)
{
@@ -678,6 +675,12 @@
// In other words, to redo, we'd have to get a stack trace as big as we
// asked for, remove more than 'overestimate' alloc-fns, and not hit
// main-or-below-main.
+ //
+ // Nb: it's possible that an alloc-fn may be found in the overestimate
+ // portion, in which case the trace will be shrunk, even though it
+ // arguably shouldn't. But it would require a very large chain of
+ // alloc-fns, and the best behaviour isn't all that clear, so we don't
+ // worry about it.
// Main loop
for (overestimate = 3; True; overestimate += 6) {
@@ -686,13 +689,14 @@
if (overestimate > MAX_OVERESTIMATE)
VG_(tool_panic)("get_IPs: ips[] too small, inc. MAX_OVERESTIMATE?");
- // Ask for more than clo_depth suggests we need.
+ // Ask for some more IPs than clo_depth suggests we need.
n_ips = VG_(get_StackTrace)( tid, ips, clo_depth + overestimate );
tl_assert(n_ips > 0);
// If we got fewer IPs than we asked for, redo=False
- if (n_ips < clo_depth + overestimate)
+ if (n_ips < clo_depth + overestimate) {
fewer_IPs_than_asked_for = True;
+ }
// Filter uninteresting entries out of the stack trace. n_ips is
// updated accordingly.
@@ -714,17 +718,6 @@
// before it.
if (is_alloc_fn(buf)) {
Int j;
- if (i+1 >= n_ips) {
- // This occurs if removing an alloc-fn and entries above
- // it results in an empty stack trace.
- VG_(message)(Vg_UserMsg,
- "User error: nothing but alloc-fns in stack trace");
- VG_(message)(Vg_UserMsg,
- "Try removing --alloc-fn=%s option and try again.", buf);
- VG_(message)(Vg_UserMsg,
- "Exiting.");
- VG_(exit)(1);
- }
n_alloc_fns_removed = i+1;
// Shuffle the rest down.
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 01:05:04 UTC (rev 6966)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 02:24:03 UTC (rev 6967)
@@ -8,6 +8,11 @@
alloc-fns-A.post.exp alloc-fns-A.stderr.exp alloc-fns-A.vgtest \
alloc-fns-B.post.exp alloc-fns-B.stderr.exp alloc-fns-B.vgtest \
basic.post.exp basic.stderr.exp basic.vgtest \
+ deep-A.post.exp deep-A.stderr.exp deep-A.vgtest \
+ deep-B.post.exp deep-B.stderr.exp deep-B.vgtest \
+ deep-C.post.exp deep-C.stderr.exp deep-C.vgtest \
+ deep-D.post.exp deep-D.stderr.exp deep-D.vgtest \
+ deep-E.post.exp deep-E.stderr.exp deep-E.vgtest \
culling1.stderr.exp culling1.vgtest \
culling2.stderr.exp culling2.vgtest \
custom_alloc.post.exp custom_alloc.stderr.exp custom_alloc.vgtest
@@ -38,6 +43,7 @@
basic \
culling1 culling2 \
custom_alloc \
+ deep \
ignoring \
long-time \
null \
Added: branches/MASSIF2/massif/tests/deep-A.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-A.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,60 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+1.055^ :
+ | :
+ | @ :
+ | @ :
+ | : @ :
+ | : @ :
+ | : : @ :
+ | : : @ :
+ | : : : @ :
+ | : : : @ :
+ | : : : : @ :
+ | : : : : @ :
+ | : : : : : @ :
+ | : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------@------>KB
+ 0 1.055
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 216 216 200 16 0
+ 3 324 324 300 24 0
+ 4 432 432 400 32 0
+ 5 540 540 500 40 0
+ 6 648 648 600 48 0
+ 7 756 756 700 56 0
+ 8 864 864 800 64 0
+ 9 972 972 900 72 0
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (900B) 0x804838D: a12 (deep.c:16)
+ ->92.59% (900B) 0x80483A3: a11 (deep.c:17)
+ ->92.59% (900B) 0x80483B9: a10 (deep.c:18)
+ ->92.59% (900B) 0x80483CF: a9 (deep.c:19)
+ ->92.59% (900B) 0x80483E5: a8 (deep.c:20)
+ ->92.59% (900B) 0x80483FB: a7 (deep.c:21)
+ ->92.59% (900B) 0x8048411: a6 (deep.c:22)
+ ->92.59% (900B) 0x8048427: a5 (deep.c:23)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 1,080 1,080 1,000 80 0
Added: branches/MASSIF2/massif/tests/deep-A.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-A.stderr.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/deep-A.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-A.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/deep-A.vgtest 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,4 @@
+prog: deep
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/deep-B.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-B.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,58 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a6
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+1.055^ :
+ | :
+ | @ :
+ | @ :
+ | : @ :
+ | : @ :
+ | : : @ :
+ | : : @ :
+ | : : : @ :
+ | : : : @ :
+ | : : : : @ :
+ | : : : : @ :
+ | : : : : : @ :
+ | : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------@------>KB
+ 0 1.055
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 216 216 200 16 0
+ 3 324 324 300 24 0
+ 4 432 432 400 32 0
+ 5 540 540 500 40 0
+ 6 648 648 600 48 0
+ 7 756 756 700 56 0
+ 8 864 864 800 64 0
+ 9 972 972 900 72 0
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (900B) 0x8048427: a5 (deep.c:23)
+ ->92.59% (900B) 0x804843D: a4 (deep.c:24)
+ ->92.59% (900B) 0x8048453: a3 (deep.c:25)
+ ->92.59% (900B) 0x8048469: a2 (deep.c:26)
+ ->92.59% (900B) 0x804847F: a1 (deep.c:27)
+ ->92.59% (900B) 0x80484B3: main (deep.c:35)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 1,080 1,080 1,000 80 0
Added: branches/MASSIF2/massif/tests/deep-B.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-B.stderr.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,37 @@
+Massif: alloc-fns:
+Massif: 1: a6
+Massif: 2: calloc
+Massif: 3: realloc
+Massif: 4: memalign
+Massif: 5: __builtin_new
+Massif: 6: __builtin_vec_new
+Massif: 7: malloc
+Massif: startup S. 0 (t:0, hp:0, ad:0, st:0)
+Massif: alloc S. 1 (t:108, hp:100, ad:8, st:0)
+Massif: alloc S. 2 (t:216, hp:200, ad:16, st:0)
+Massif: alloc S. 3 (t:324, hp:300, ad:24, st:0)
+Massif: alloc S. 4 (t:432, hp:400, ad:32, st:0)
+Massif: alloc S. 5 (t:540, hp:500, ad:40, st:0)
+Massif: alloc S. 6 (t:648, hp:600, ad:48, st:0)
+Massif: alloc S. 7 (t:756, hp:700, ad:56, st:0)
+Massif: alloc S. 8 (t:864, hp:800, ad:64, st:0)
+Massif: alloc Sd 9 (t:972, hp:900, ad:72, st:0)
+Massif: alloc S. 10 (t:1080, hp:1000, ad:80, st:0)
+Massif: allocs: 10
+Massif: zeroallocs: 0 (0%)
+Massif: reallocs: 0
+Massif: frees: 0
+Massif: stack allocs: 0
+Massif: stack frees: 0
+Massif: XPts: 7
+Massif: top-XPts: 1 (14%)
+Massif: dup'd XPts: 7
+Massif: dup'd/freed XPts: 0
+Massif: XPt-init-expansions: 6
+Massif: XPt-later-expansions: 0
+Massif: skipped snapshots: 0
+Massif: real snapshots: 11
+Massif: detailed snapshots: 1
+Massif: peak snapshots: 0
+Massif: cullings: 0
+Massif: XCon_redos: 10
Added: branches/MASSIF2/massif/tests/deep-B.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-B.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/deep-B.vgtest 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,5 @@
+prog: deep
+vgopts: --stacks=no --time-unit=B --alloc-fn=a6 -v
+stderr_filter: filter_verbose
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/deep-C.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-C.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,55 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a3
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+1.055^ :
+ | :
+ | @ :
+ | @ :
+ | : @ :
+ | : @ :
+ | : : @ :
+ | : : @ :
+ | : : : @ :
+ | : : : @ :
+ | : : : : @ :
+ | : : : : @ :
+ | : : : : : @ :
+ | : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------@------>KB
+ 0 1.055
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 216 216 200 16 0
+ 3 324 324 300 24 0
+ 4 432 432 400 32 0
+ 5 540 540 500 40 0
+ 6 648 648 600 48 0
+ 7 756 756 700 56 0
+ 8 864 864 800 64 0
+ 9 972 972 900 72 0
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (900B) 0x8048469: a2 (deep.c:26)
+ ->92.59% (900B) 0x804847F: a1 (deep.c:27)
+ ->92.59% (900B) 0x80484B3: main (deep.c:35)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 1,080 1,080 1,000 80 0
Added: branches/MASSIF2/massif/tests/deep-C.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-C.stderr.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,37 @@
+Massif: alloc-fns:
+Massif: 1: a3
+Massif: 2: calloc
+Massif: 3: realloc
+Massif: 4: memalign
+Massif: 5: __builtin_new
+Massif: 6: __builtin_vec_new
+Massif: 7: malloc
+Massif: startup S. 0 (t:0, hp:0, ad:0, st:0)
+Massif: alloc S. 1 (t:108, hp:100, ad:8, st:0)
+Massif: alloc S. 2 (t:216, hp:200, ad:16, st:0)
+Massif: alloc S. 3 (t:324, hp:300, ad:24, st:0)
+Massif: alloc S. 4 (t:432, hp:400, ad:32, st:0)
+Massif: alloc S. 5 (t:540, hp:500, ad:40, st:0)
+Massif: alloc S. 6 (t:648, hp:600, ad:48, st:0)
+Massif: alloc S. 7 (t:756, hp:700, ad:56, st:0)
+Massif: alloc S. 8 (t:864, hp:800, ad:64, st:0)
+Massif: alloc Sd 9 (t:972, hp:900, ad:72, st:0)
+Massif: alloc S. 10 (t:1080, hp:1000, ad:80, st:0)
+Massif: allocs: 10
+Massif: zeroallocs: 0 (0%)
+Massif: reallocs: 0
+Massif: frees: 0
+Massif: stack allocs: 0
+Massif: stack frees: 0
+Massif: XPts: 4
+Massif: top-XPts: 1 (25%)
+Massif: dup'd XPts: 4
+Massif: dup'd/freed XPts: 0
+Massif: XPt-init-expansions: 3
+Massif: XPt-later-expansions: 0
+Massif: skipped snapshots: 0
+Massif: real snapshots: 11
+Massif: detailed snapshots: 1
+Massif: peak snapshots: 0
+Massif: cullings: 0
+Massif: XCon_redos: 10
Added: branches/MASSIF2/massif/tests/deep-C.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-C.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/deep-C.vgtest 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,5 @@
+prog: deep
+vgopts: --stacks=no --time-unit=B --alloc-fn=a3 -v
+stderr_filter: filter_verbose
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/deep-D.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-D.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,60 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=main
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+1.055^ :
+ | :
+ | @ :
+ | @ :
+ | : @ :
+ | : @ :
+ | : : @ :
+ | : : @ :
+ | : : : @ :
+ | : : : @ :
+ | : : : : @ :
+ | : : : : @ :
+ | : : : : : @ :
+ | : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------@------>KB
+ 0 1.055
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 216 216 200 16 0
+ 3 324 324 300 24 0
+ 4 432 432 400 32 0
+ 5 540 540 500 40 0
+ 6 648 648 600 48 0
+ 7 756 756 700 56 0
+ 8 864 864 800 64 0
+ 9 972 972 900 72 0
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (900B) 0x804838D: a12 (deep.c:16)
+ ->92.59% (900B) 0x80483A3: a11 (deep.c:17)
+ ->92.59% (900B) 0x80483B9: a10 (deep.c:18)
+ ->92.59% (900B) 0x80483CF: a9 (deep.c:19)
+ ->92.59% (900B) 0x80483E5: a8 (deep.c:20)
+ ->92.59% (900B) 0x80483FB: a7 (deep.c:21)
+ ->92.59% (900B) 0x8048411: a6 (deep.c:22)
+ ->92.59% (900B) 0x8048427: a5 (deep.c:23)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 1,080 1,080 1,000 80 0
Added: branches/MASSIF2/massif/tests/deep-D.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-D.stderr.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/deep-D.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-D.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/deep-D.vgtest 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,4 @@
+prog: deep
+vgopts: --stacks=no --time-unit=B --alloc-fn=main
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/deep-E.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-E.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-E.post.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,52 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=main --depth=20
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+1.055^ :
+ | :
+ | @ :
+ | @ :
+ | : @ :
+ | : @ :
+ | : : @ :
+ | : : @ :
+ | : : : @ :
+ | : : : @ :
+ | : : : : @ :
+ | : : : : @ :
+ | : : : : : @ :
+ | : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : @ :
+ | : : : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------@------>KB
+ 0 1.055
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 216 216 200 16 0
+ 3 324 324 300 24 0
+ 4 432 432 400 32 0
+ 5 540 540 500 40 0
+ 6 648 648 600 48 0
+ 7 756 756 700 56 0
+ 8 864 864 800 64 0
+ 9 972 972 900 72 0
+92.59% (900B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 1,080 1,080 1,000 80 0
Added: branches/MASSIF2/massif/tests/deep-E.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/deep-E.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/deep-E.stderr.exp 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/deep-E.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/deep-E.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/deep-E.vgtest 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,4 @@
+prog: deep
+vgopts: --stacks=no --time-unit=B --alloc-fn=main --depth=20
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
Added: branches/MASSIF2/massif/tests/deep.c
===================================================================
--- branches/MASSIF2/massif/tests/deep.c (rev 0)
+++ branches/MASSIF2/massif/tests/deep.c 2007-10-09 02:24:03 UTC (rev 6967)
@@ -0,0 +1,40 @@
+// This is a test for complicated stack traces.
+//
+// - In deep-A.vgtest, the stack trace is larger than the asked-for depth
+// (12 vs. 8) so not all of the trace is shown.
+// - In deep-B.vgtest, we have --alloc-fn=a6, which means that get_XCon
+// needs to redo the IP getting, because 7 functions get removed from the
+// trace, which is more than the initial overestimate of 3.
+// - In deep-C.vgtest, we have --alloc-fn=a3, which means that get_XCon
+// ends up with an empty stack trace after removing all the alloc-fns.
+// It then redoes it.
+// - In deep-D.vgtest, we have --alloc-fn=main. It would be an empty stack
+// trace, except the default depth doesn't get us down to 'main'.
+// - In deep-E.vgtest, we have --alloc-fn=main --depth=20, which means that
+// we have an empty stack trace. That's ok.
+
+#include <stdlib.h>
+
+void a12(int n) { malloc(n); }
+void a11(int n) { a12(n); }
+void a10(int n) { a11(n); }
+void a9 (int n) { a10(n); }
+void a8 (int n) { a9 (n); }
+void a7 (int n) { a8 (n); }
+void a6 (int n) { a7 (n); }
+void a5 (int n) { a6 (n); }
+void a4 (int n) { a5 (n); }
+void a3 (int n) { a4 (n); }
+void a2 (int n) { a3 (n); }
+void a1 (int n) { a2 (n); }
+
+int main(void)
+{
+ int i;
+
+ // This one exceeds the default --depth.
+ for (i = 0; i < 10; i++)
+ a1(100);
+
+ return 0;
+}
|
|
From: Tom H. <th...@cy...> - 2007-10-09 02:23:04
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-10-09 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-10-09 02:19:14
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2007-10-09 03:05: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, 2 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) |
|
From: Tom H. <th...@cy...> - 2007-10-09 02:15:50
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-10-09 03:00:04 BST Results differ 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, 2 stdout failures, 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) none/tests/tls (stdout) ================================================= == Results 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Oct 9 03:09:11 2007 --- new.short Tue Oct 9 03:15:48 2007 *************** *** 8,10 **** ! == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 295 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 16,17 **** --- 16,18 ---- none/tests/mremap2 (stdout) + none/tests/tls (stdout) |
|
From: <sv...@va...> - 2007-10-09 01:05:03
|
Author: njn
Date: 2007-10-09 02:05:04 +0100 (Tue, 09 Oct 2007)
New Revision: 6966
Log:
Fix a bug involving custom allocators. Added a test for it.
Added:
branches/MASSIF2/massif/tests/custom_alloc.c
branches/MASSIF2/massif/tests/custom_alloc.post.exp
branches/MASSIF2/massif/tests/custom_alloc.stderr.exp
branches/MASSIF2/massif/tests/custom_alloc.vgtest
Modified:
branches/MASSIF2/massif/ms_main.c
branches/MASSIF2/massif/tests/Makefile.am
Modified: branches/MASSIF2/massif/ms_main.c
===================================================================
--- branches/MASSIF2/massif/ms_main.c 2007-10-09 00:40:15 UTC (rev 6965)
+++ branches/MASSIF2/massif/ms_main.c 2007-10-09 01:05:04 UTC (rev 6966)
@@ -48,7 +48,6 @@
// (it aborts -- should give a warning and do something less drastic?)
// - write a good basic test that shows how the tool works, suitable for
// documentation
-// - Check MALLOCLIKE_BLOCK works, write regtest
// - make everything configurable, eg. min/max number of snapshots (which
// also determine culling proportion), frequency of detailed snapshots,
// etc.
@@ -149,7 +148,6 @@
//
// Tests:
// - tests/overloaded_new.cpp is there
-// - one involving MALLOCLIKE
//
//---------------------------------------------------------------------------
@@ -657,7 +655,7 @@
// Eg: alloc-fn1 / alloc-fn2 / a / b / main / (below main) / c
// becomes: a / b / main
static
-Int get_IPs( ThreadId tid, Bool is_custom_malloc, Addr ips[], Int max_ips)
+Int get_IPs( ThreadId tid, Bool is_custom_alloc, Addr ips[], Int max_ips)
{
Int n_ips, i, n_alloc_fns_removed = 0;
Int overestimate;
@@ -739,9 +737,9 @@
}
}
- // There must be at least one alloc function, unless client used
+ // There must be at least one alloc function, unless the client used
// MALLOCLIKE_BLOCK.
- if (!is_custom_malloc)
+ if (!is_custom_alloc)
tl_assert2(n_alloc_fns_removed > 0,
"n_alloc_fns_removed = %s\n", n_alloc_fns_removed);
@@ -763,14 +761,14 @@
}
// Gets an XCon and puts it in the tree. Returns the XCon's bottom-XPt.
-static XPt* get_XCon( ThreadId tid, Bool is_custom_malloc )
+static XPt* get_XCon( ThreadId tid, Bool is_custom_alloc )
{
static Addr ips[MAX_IPS]; // Static to minimise stack size.
Int i;
XPt* xpt = alloc_xpt;
// After this call, the IPs we want are in ips[0]..ips[n_ips-1].
- Int n_ips = get_IPs(tid, is_custom_malloc, ips, MAX_IPS);
+ Int n_ips = get_IPs(tid, is_custom_alloc, ips, MAX_IPS);
// Now do the search/insertion of the XCon. 'L' is the loop counter,
// being the index into ips[].
@@ -1326,7 +1324,7 @@
Bool is_zeroed )
{
HP_Chunk* hc;
- Bool custom_alloc = (NULL == p);
+ Bool is_custom_alloc = (NULL != p);
if (szB < 0) return NULL;
VERB(2, "<<< new_mem_heap (%lu)", szB);
@@ -1356,7 +1354,7 @@
// Update XTree, if necessary
if (clo_heap) {
- hc->where = get_XCon( tid, custom_alloc );
+ hc->where = get_XCon( tid, is_custom_alloc );
update_XCon(hc->where, szB);
}
VG_(HT_add_node)(malloc_list, hc);
@@ -1605,16 +1603,15 @@
void* res;
void* p = (void*)argv[1];
SizeT szB = argv[2];
- *ret = 0;
- res =
- new_block( tid, p, szB, /*alignB--ignored*/0, /*is_zeroed*/False );
+ res = new_block( tid, p, szB, /*alignB--ignored*/0, /*is_zeroed*/False );
tl_assert(res == p);
+ *ret = 0;
return True;
}
case VG_USERREQ__FREELIKE_BLOCK: {
- void* p = (void*)argv[1];
- *ret = 0;
+ void* p = (void*)argv[1];
die_block( p, /*custom_free*/True );
+ *ret = 0;
return True;
}
default:
Modified: branches/MASSIF2/massif/tests/Makefile.am
===================================================================
--- branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 00:40:15 UTC (rev 6965)
+++ branches/MASSIF2/massif/tests/Makefile.am 2007-10-09 01:05:04 UTC (rev 6966)
@@ -10,6 +10,7 @@
basic.post.exp basic.stderr.exp basic.vgtest \
culling1.stderr.exp culling1.vgtest \
culling2.stderr.exp culling2.vgtest \
+ custom_alloc.post.exp custom_alloc.stderr.exp custom_alloc.vgtest
ignoring.post.exp ignoring.stderr.exp ignoring.vgtest \
long-time.post.exp long-time.stderr.exp long-time.vgtest \
null.post.exp null.stderr.exp null.vgtest \
@@ -28,10 +29,15 @@
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI)
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
+ -I$(top_srcdir)/coregrind -I$(top_builddir)/include \
+ -I@VEX_DIR@/pub
+
check_PROGRAMS = \
alloc-fns \
basic \
culling1 culling2 \
+ custom_alloc \
ignoring \
long-time \
null \
Added: branches/MASSIF2/massif/tests/custom_alloc.c
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.c (rev 0)
+++ branches/MASSIF2/massif/tests/custom_alloc.c 2007-10-09 01:05:04 UTC (rev 6966)
@@ -0,0 +1,73 @@
+#include <unistd.h>
+#include <sys/mman.h>
+#include <assert.h>
+#include <stdlib.h>
+
+#include "valgrind.h"
+
+#define SUPERBLOCK_SIZE 100000
+
+//-------------------------------------------------------------------------
+// Allocator
+//-------------------------------------------------------------------------
+
+void* get_superblock(void)
+{
+ void* p = mmap( 0, SUPERBLOCK_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
+ MAP_PRIVATE|MAP_ANON, -1, 0 );
+
+ assert(p != ((void*)(-1)));
+
+ return p;
+}
+
+// has a redzone
+static void* custom_alloc(int size)
+{
+#define RZ 8
+ static void* hp = 0; // current heap pointer
+ static void* hp_lim = 0; // maximum usable byte in current block
+ int size2 = size + RZ*2;
+ void* p;
+
+ if (hp + size2 > hp_lim) {
+ hp = get_superblock();
+ hp_lim = hp + SUPERBLOCK_SIZE - 1;
+ }
+
+ p = hp + RZ;
+ hp += size2;
+
+ VALGRIND_MALLOCLIKE_BLOCK( p, size, RZ, /*is_zeroed*/1 );
+ return (void*)p;
+}
+
+static void custom_free(void* p)
+{
+ // don't actually free any memory... but mark it as freed
+ VALGRIND_FREELIKE_BLOCK( p, RZ );
+}
+#undef RZ
+
+
+
+//-------------------------------------------------------------------------
+// Rest
+//-------------------------------------------------------------------------
+
+int main(void)
+{
+ int* a = custom_alloc(100);
+ custom_free(a);
+
+ a = custom_alloc(200);
+ custom_free(a);
+
+ a = malloc(100);
+ free(a);
+
+ a = malloc(200);
+ free(a);
+
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/custom_alloc.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/custom_alloc.post.exp 2007-10-09 01:05:04 UTC (rev 6966)
@@ -0,0 +1,63 @@
+--------------------------------------------------------------------------------
+Command: ./custom_alloc
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ B
+ 208^ # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | # :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ | @ # : :
+ 0 +------@-----------------#---------------------------------------------->KB
+ 0 1.234
+
+Number of snapshots: 11
+ Detailed snapshots: [2, 5 (peak)]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 108 108 100 8 0
+ 2 108 108 100 8 0
+92.59% (100B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->92.59% (100B) 0x80485A9: custom_alloc (custom_alloc.c:41)
+ ->92.59% (100B) 0x804862D: main (custom_alloc.c:60)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 3 216 0 0 0 0
+ 4 424 208 200 8 0
+ 5 424 208 200 8 0
+96.15% (200B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->96.15% (200B) 0x80485A9: custom_alloc (custom_alloc.c:41)
+ ->96.15% (200B) 0x804864B: main (custom_alloc.c:63)
+ |
+ ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 6 632 0 0 0 0
+ 7 740 108 100 8 0
+ 8 848 0 0 0 0
+ 9 1,056 208 200 8 0
+ 10 1,264 0 0 0 0
Added: branches/MASSIF2/massif/tests/custom_alloc.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/custom_alloc.stderr.exp 2007-10-09 01:05:04 UTC (rev 6966)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/custom_alloc.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/custom_alloc.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/custom_alloc.vgtest 2007-10-09 01:05:04 UTC (rev 6966)
@@ -0,0 +1,4 @@
+prog: custom_alloc
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
|
|
From: <sv...@va...> - 2007-10-09 00:40:16
|
Author: njn
Date: 2007-10-09 01:40:15 +0100 (Tue, 09 Oct 2007)
New Revision: 6965
Log:
Forgot to add these in the peak-taking commit.
Added:
branches/MASSIF2/massif/tests/ignoring.c
branches/MASSIF2/massif/tests/ignoring.post.exp
branches/MASSIF2/massif/tests/ignoring.stderr.exp
branches/MASSIF2/massif/tests/ignoring.vgtest
Added: branches/MASSIF2/massif/tests/ignoring.c
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.c (rev 0)
+++ branches/MASSIF2/massif/tests/ignoring.c 2007-10-09 00:40:15 UTC (rev 6965)
@@ -0,0 +1,31 @@
+// When we cull and compute the new minimum time between snapshots, we want
+// to ignore any gap between two uncullable snapshots, because it is not
+// representative. This program tests that.
+
+
+#include <stdlib.h>
+
+int main(void)
+{
+ int i;
+
+ // The peak is from the first allocation.
+ int* x = malloc(1000);
+ free(x);
+
+ // Now do an allocation to provide the post-peak baseline.
+ malloc(500);
+
+ // Now we do lots of allocations below the peak. With the proper
+ // handling, the allocations should still be smoothly distributed.
+ // Without it, the snapshots in the second half of the graph would be
+ // clustered much more closely than those in the first half.
+ //
+
+ for (i = 0; i < 350; i++) {
+ int* y = malloc(250);
+ free(y);
+ }
+
+ return 0;
+}
Added: branches/MASSIF2/massif/tests/ignoring.post.exp
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.post.exp (rev 0)
+++ branches/MASSIF2/massif/tests/ignoring.post.exp 2007-10-09 00:40:15 UTC (rev 6965)
@@ -0,0 +1,236 @@
+--------------------------------------------------------------------------------
+Command: ./ignoring
+Massif arguments: --stacks=no --time-unit=B
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+0.984^#
+ |#
+ |#
+ |#
+ |#
+ |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ |# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
+ 0 +#-@---@---------------@---@---@---@---@----@-------@-------@-------@--->KB
+ 0 178.6
+
+Number of snapshots: 88
+ Detailed snapshots: [1 (peak), 3, 8, 26, 31, 36, 41, 46, 52, 62, 72, 82]
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 1,008 1,008 1,000 8 0
+99.21% (1000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->99.21% (1000B) 0x80483D8: main (ignoring.c:13)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 2 5,104 508 500 8 0
+ 3 7,168 508 500 8 0
+98.43% (500B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->98.43% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 4 9,232 508 500 8 0
+ 5 11,296 508 500 8 0
+ 6 13,360 508 500 8 0
+ 7 15,424 508 500 8 0
+ 8 17,488 508 500 8 0
+98.43% (500B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->98.43% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 9 19,552 508 500 8 0
+ 10 21,616 508 500 8 0
+ 11 23,680 508 500 8 0
+ 12 27,034 766 750 16 0
+ 13 29,098 766 750 16 0
+ 14 31,162 766 750 16 0
+ 15 33,226 766 750 16 0
+ 16 35,290 766 750 16 0
+ 17 37,354 766 750 16 0
+ 18 39,418 766 750 16 0
+ 19 41,482 766 750 16 0
+ 20 43,546 766 750 16 0
+ 21 45,610 766 750 16 0
+ 22 47,674 766 750 16 0
+ 23 49,738 766 750 16 0
+ 24 51,802 766 750 16 0
+ 25 53,866 766 750 16 0
+ 26 55,930 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 27 57,994 766 750 16 0
+ 28 60,058 766 750 16 0
+ 29 62,122 766 750 16 0
+ 30 64,186 766 750 16 0
+ 31 66,250 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 32 68,314 766 750 16 0
+ 33 70,378 766 750 16 0
+ 34 72,442 766 750 16 0
+ 35 74,506 766 750 16 0
+ 36 76,570 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 37 78,634 766 750 16 0
+ 38 80,698 766 750 16 0
+ 39 82,762 766 750 16 0
+ 40 84,826 766 750 16 0
+ 41 86,890 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 42 88,954 766 750 16 0
+ 43 91,018 766 750 16 0
+ 44 93,082 766 750 16 0
+ 45 95,146 766 750 16 0
+ 46 97,210 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 47 99,274 766 750 16 0
+ 48 101,338 766 750 16 0
+ 49 104,434 766 750 16 0
+ 50 106,498 766 750 16 0
+ 51 108,562 766 750 16 0
+ 52 110,626 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 53 112,690 766 750 16 0
+ 54 114,754 766 750 16 0
+ 55 116,818 766 750 16 0
+ 56 118,882 766 750 16 0
+ 57 120,946 766 750 16 0
+ 58 123,010 766 750 16 0
+ 59 125,074 766 750 16 0
+ 60 127,138 766 750 16 0
+ 61 129,202 766 750 16 0
+ 62 131,266 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 63 133,330 766 750 16 0
+ 64 135,394 766 750 16 0
+ 65 137,458 766 750 16 0
+ 66 139,522 766 750 16 0
+ 67 141,586 766 750 16 0
+ 68 143,650 766 750 16 0
+ 69 145,714 766 750 16 0
+ 70 147,778 766 750 16 0
+ 71 149,842 766 750 16 0
+ 72 151,906 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 73 153,970 766 750 16 0
+ 74 156,034 766 750 16 0
+ 75 158,098 766 750 16 0
+ 76 160,162 766 750 16 0
+ 77 162,226 766 750 16 0
+ 78 164,290 766 750 16 0
+ 79 166,354 766 750 16 0
+ 80 168,418 766 750 16 0
+ 81 170,482 766 750 16 0
+ 82 172,546 766 750 16 0
+97.91% (750B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->65.27% (500B) 0x80483F9: main (ignoring.c:17)
+|
+->32.64% (250B) 0x8048412: main (ignoring.c:26)
+|
+->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) admin-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 83 174,610 766 750 16 0
+ 84 176,674 766 750 16 0
+ 85 178,738 766 750 16 0
+ 86 180,802 766 750 16 0
+ 87 182,866 766 750 16 0
Added: branches/MASSIF2/massif/tests/ignoring.stderr.exp
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.stderr.exp (rev 0)
+++ branches/MASSIF2/massif/tests/ignoring.stderr.exp 2007-10-09 00:40:15 UTC (rev 6965)
@@ -0,0 +1,2 @@
+
+
Added: branches/MASSIF2/massif/tests/ignoring.vgtest
===================================================================
--- branches/MASSIF2/massif/tests/ignoring.vgtest (rev 0)
+++ branches/MASSIF2/massif/tests/ignoring.vgtest 2007-10-09 00:40:15 UTC (rev 6965)
@@ -0,0 +1,4 @@
+prog: ignoring
+vgopts: --stacks=no --time-unit=B
+post: perl ../../massif/ms_print massif.out
+cleanup: rm massif.out
|
|
From: <js...@ac...> - 2007-10-09 00:17:50
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-10-09 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) |