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
(11) |
2
(9) |
3
(14) |
4
(18) |
5
(13) |
|
6
(4) |
7
(12) |
8
(16) |
9
(14) |
10
(8) |
11
(9) |
12
(7) |
|
13
(12) |
14
(6) |
15
(14) |
16
(5) |
17
(10) |
18
(8) |
19
(5) |
|
20
(10) |
21
(16) |
22
(5) |
23
(14) |
24
(10) |
25
(11) |
26
(6) |
|
27
(9) |
28
(8) |
29
(11) |
30
(9) |
31
(18) |
|
|
|
From: <sv...@va...> - 2008-01-20 23:30:57
|
Author: njn
Date: 2008-01-20 23:30:58 +0000 (Sun, 20 Jan 2008)
New Revision: 7357
Log:
update
Modified:
trunk/docs/internals/3_3_BUGSTATUS.txt
Modified: trunk/docs/internals/3_3_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_3_BUGSTATUS.txt 2008-01-20 23:30:30 UTC (rev 7356)
+++ trunk/docs/internals/3_3_BUGSTATUS.txt 2008-01-20 23:30:58 UTC (rev 7357)
@@ -24,3 +24,6 @@
pending pending 33 155091 Warning [...] unhandled DW_OP_ opcode 0x23
(patch proposed, waiting for feedback)
+
+r7355 7356 33 155929 ms_print fails on massif outputs
+ containing long lines
|
|
From: <sv...@va...> - 2008-01-20 23:30:29
|
Author: njn
Date: 2008-01-20 23:30:30 +0000 (Sun, 20 Jan 2008)
New Revision: 7356
Log:
When truncating long lines in the output file, make sure they end with a
newline. Fixes bug #155929.
MERGED FROM TRUNK (r7355)
Added:
branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.c
branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.post.exp
branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.stderr.exp
branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.vgtest
Modified:
branches/VALGRIND_3_3_BRANCH/massif/ms_main.c
branches/VALGRIND_3_3_BRANCH/massif/tests/Makefile.am
Modified: branches/VALGRIND_3_3_BRANCH/massif/ms_main.c
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/ms_main.c 2008-01-20 22:30:52 UTC (rev 7355)
+++ branches/VALGRIND_3_3_BRANCH/massif/ms_main.c 2008-01-20 23:30:30 UTC (rev 7356)
@@ -774,6 +774,11 @@
#define MAX_OVERESTIMATE 50
#define MAX_IPS (MAX_DEPTH + MAX_OVERESTIMATE)
+// This is used for various buffers which can hold function names/IP
+// description. Some C++ names can get really long so 1024 isn't big
+// enough.
+#define BUF_LEN 2048
+
// 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
@@ -783,7 +788,6 @@
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;
Int overestimate;
@@ -1863,16 +1867,28 @@
// The output file name. Controlled by --massif-out-file.
static Char* massif_out_file = NULL;
-#define FP_BUF_SIZE 1024
-Char FP_buf[FP_BUF_SIZE];
+Char FP_buf[BUF_LEN];
// 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)(FP_buf, FP_BUF_SIZE, format, ##args); \
+ VG_(snprintf)(FP_buf, BUF_LEN, format, ##args); \
+ FP_buf[BUF_LEN-1] = '\0'; /* Make sure the string is terminated. */ \
VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf)); \
})
+// Same as FP, but guarantees a '\n' at the end. (At one point we were
+// truncating without adding the '\n', which caused bug #155929.)
+#define FPn(format, args...) ({ \
+ VG_(snprintf)(FP_buf, BUF_LEN, format, ##args); \
+ FP_buf[BUF_LEN-5] = '.'; /* "..." at the end make the truncation */ \
+ FP_buf[BUF_LEN-4] = '.'; /* more obvious */ \
+ FP_buf[BUF_LEN-3] = '.'; \
+ FP_buf[BUF_LEN-2] = '\n'; /* Make sure the last char is a newline. */ \
+ FP_buf[BUF_LEN-1] = '\0'; /* Make sure the string is terminated. */ \
+ VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf)); \
+})
+
// Nb: uses a static buffer, each call trashes the last string returned.
static Char* make_perc(ULong x, ULong y)
{
@@ -1892,7 +1908,6 @@
Int depth_str_len,
SizeT snapshot_heap_szB, SizeT snapshot_total_szB)
{
- #define BUF_LEN 1024
Int i, n_insig_children_sxpts;
Char* perc;
Char ip_desc_array[BUF_LEN];
@@ -1925,7 +1940,10 @@
ip_desc = VG_(describe_IP)(sxpt->Sig.ip-1, ip_desc, BUF_LEN);
}
perc = make_perc(sxpt->szB, snapshot_total_szB);
- FP("%sn%d: %lu %s\n",
+ // Nb: we deliberately use 'FPn', not 'FP'. So if the ip_desc is
+ // too long (eg. due to a long C++ function name), it'll get
+ // truncated, but the '\n' is still there so its a valid file.
+ FPn("%sn%d: %lu %s\n",
depth_str, sxpt->Sig.n_children, sxpt->szB, ip_desc);
// Indent.
Modified: branches/VALGRIND_3_3_BRANCH/massif/tests/Makefile.am
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/tests/Makefile.am 2008-01-20 22:30:52 UTC (rev 7355)
+++ branches/VALGRIND_3_3_BRANCH/massif/tests/Makefile.am 2008-01-20 23:30:30 UTC (rev 7356)
@@ -19,6 +19,7 @@
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-names.post.exp long-names.stderr.exp long-names.vgtest \
long-time.post.exp long-time.stderr.exp long-time.vgtest \
new-cpp.post.exp new-cpp.stderr.exp new-cpp.vgtest \
no-stack-no-heap.post.exp no-stack-no-heap.stderr.exp no-stack-no-heap.vgtest \
@@ -54,6 +55,7 @@
deep \
ignoring \
insig \
+ long-names \
long-time \
new-cpp \
null \
Copied: branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.c (from rev 7355, trunk/massif/tests/long-names.c)
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.c (rev 0)
+++ branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.c 2008-01-20 23:30:30 UTC (rev 7356)
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+// This function name is long enough to get truncated.
+
+#define A2500 \
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij
+
+void A2500(int n)
+{
+ if (n > 0) {
+ malloc(1000);
+ A2500(n-1);
+ }
+}
+
+int main(void)
+{
+ A2500(3);
+ return 0;
+}
+
Copied: branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.post.exp (from rev 7355, trunk/massif/tests/long-names.post.exp)
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.post.exp (rev 0)
+++ branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.post.exp 2008-01-20 23:30:30 UTC (rev 7356)
@@ -0,0 +1,51 @@
+--------------------------------------------------------------------------------
+Command: ./long-names
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+2.930^ :
+ | :
+ | :
+ | :
+ | :
+ | :
+ | :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | . @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ 0 +----------------------------------------------------------------------->KB
+ 0 2.930
+
+Number of snapshots: 4
+ Detailed snapshots: [2]
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 1,000 1,000 1,000 0 0
+ 2 2,000 2,000 2,000 0 0
+100.00% (2,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->100.00% (2,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefgh
ijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefg
hijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJab...
+ ->50.00% (1,000B) 0x........: main (long-names.c:68)
+ |
+ ->50.00% (1,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefg
hijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdef
ghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJa...
+ ->50.00% (1,000B) 0x........: main (long-names.c:68)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 3 3,000 3,000 3,000 0 0
Copied: branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.stderr.exp (from rev 7355, trunk/massif/tests/long-names.stderr.exp)
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.stderr.exp (rev 0)
+++ branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.stderr.exp 2008-01-20 23:30:30 UTC (rev 7356)
@@ -0,0 +1,2 @@
+
+
Copied: branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.vgtest (from rev 7355, trunk/massif/tests/long-names.vgtest)
===================================================================
--- branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.vgtest (rev 0)
+++ branches/VALGRIND_3_3_BRANCH/massif/tests/long-names.vgtest 2008-01-20 23:30:30 UTC (rev 7356)
@@ -0,0 +1,4 @@
+prog: long-names
+vgopts: --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
+cleanup: rm massif.out
|
|
From: <sv...@va...> - 2008-01-20 22:30:55
|
Author: njn
Date: 2008-01-20 22:30:52 +0000 (Sun, 20 Jan 2008)
New Revision: 7355
Log:
When truncating long lines in the output file, make sure they end with a
newline. Fixes bug #155929.
Added:
trunk/massif/tests/long-names.c
trunk/massif/tests/long-names.post.exp
trunk/massif/tests/long-names.stderr.exp
trunk/massif/tests/long-names.vgtest
Modified:
trunk/massif/ms_main.c
trunk/massif/tests/Makefile.am
Modified: trunk/massif/ms_main.c
===================================================================
--- trunk/massif/ms_main.c 2008-01-18 07:42:01 UTC (rev 7354)
+++ trunk/massif/ms_main.c 2008-01-20 22:30:52 UTC (rev 7355)
@@ -774,6 +774,11 @@
#define MAX_OVERESTIMATE 50
#define MAX_IPS (MAX_DEPTH + MAX_OVERESTIMATE)
+// This is used for various buffers which can hold function names/IP
+// description. Some C++ names can get really long so 1024 isn't big
+// enough.
+#define BUF_LEN 2048
+
// 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
@@ -783,7 +788,6 @@
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;
Int overestimate;
@@ -1863,16 +1867,28 @@
// The output file name. Controlled by --massif-out-file.
static Char* massif_out_file = NULL;
-#define FP_BUF_SIZE 1024
-Char FP_buf[FP_BUF_SIZE];
+Char FP_buf[BUF_LEN];
// 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)(FP_buf, FP_BUF_SIZE, format, ##args); \
+ VG_(snprintf)(FP_buf, BUF_LEN, format, ##args); \
+ FP_buf[BUF_LEN-1] = '\0'; /* Make sure the string is terminated. */ \
VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf)); \
})
+// Same as FP, but guarantees a '\n' at the end. (At one point we were
+// truncating without adding the '\n', which caused bug #155929.)
+#define FPn(format, args...) ({ \
+ VG_(snprintf)(FP_buf, BUF_LEN, format, ##args); \
+ FP_buf[BUF_LEN-5] = '.'; /* "..." at the end make the truncation */ \
+ FP_buf[BUF_LEN-4] = '.'; /* more obvious */ \
+ FP_buf[BUF_LEN-3] = '.'; \
+ FP_buf[BUF_LEN-2] = '\n'; /* Make sure the last char is a newline. */ \
+ FP_buf[BUF_LEN-1] = '\0'; /* Make sure the string is terminated. */ \
+ VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf)); \
+})
+
// Nb: uses a static buffer, each call trashes the last string returned.
static Char* make_perc(ULong x, ULong y)
{
@@ -1892,7 +1908,6 @@
Int depth_str_len,
SizeT snapshot_heap_szB, SizeT snapshot_total_szB)
{
- #define BUF_LEN 1024
Int i, n_insig_children_sxpts;
Char* perc;
Char ip_desc_array[BUF_LEN];
@@ -1925,7 +1940,10 @@
ip_desc = VG_(describe_IP)(sxpt->Sig.ip-1, ip_desc, BUF_LEN);
}
perc = make_perc(sxpt->szB, snapshot_total_szB);
- FP("%sn%d: %lu %s\n",
+ // Nb: we deliberately use 'FPn', not 'FP'. So if the ip_desc is
+ // too long (eg. due to a long C++ function name), it'll get
+ // truncated, but the '\n' is still there so its a valid file.
+ FPn("%sn%d: %lu %s\n",
depth_str, sxpt->Sig.n_children, sxpt->szB, ip_desc);
// Indent.
Modified: trunk/massif/tests/Makefile.am
===================================================================
--- trunk/massif/tests/Makefile.am 2008-01-18 07:42:01 UTC (rev 7354)
+++ trunk/massif/tests/Makefile.am 2008-01-20 22:30:52 UTC (rev 7355)
@@ -19,6 +19,7 @@
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-names.post.exp long-names.stderr.exp long-names.vgtest \
long-time.post.exp long-time.stderr.exp long-time.vgtest \
new-cpp.post.exp new-cpp.stderr.exp new-cpp.vgtest \
no-stack-no-heap.post.exp no-stack-no-heap.stderr.exp no-stack-no-heap.vgtest \
@@ -54,6 +55,7 @@
deep \
ignoring \
insig \
+ long-names \
long-time \
new-cpp \
null \
Added: trunk/massif/tests/long-names.c
===================================================================
--- trunk/massif/tests/long-names.c (rev 0)
+++ trunk/massif/tests/long-names.c 2008-01-20 22:30:52 UTC (rev 7355)
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+// This function name is long enough to get truncated.
+
+#define A2500 \
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij\
+abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghij
+
+void A2500(int n)
+{
+ if (n > 0) {
+ malloc(1000);
+ A2500(n-1);
+ }
+}
+
+int main(void)
+{
+ A2500(3);
+ return 0;
+}
+
Added: trunk/massif/tests/long-names.post.exp
===================================================================
--- trunk/massif/tests/long-names.post.exp (rev 0)
+++ trunk/massif/tests/long-names.post.exp 2008-01-20 22:30:52 UTC (rev 7355)
@@ -0,0 +1,51 @@
+--------------------------------------------------------------------------------
+Command: ./long-names
+Massif arguments: --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+2.930^ :
+ | :
+ | :
+ | :
+ | :
+ | :
+ | :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | @ :
+ | . @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ | : @ :
+ 0 +----------------------------------------------------------------------->KB
+ 0 2.930
+
+Number of snapshots: 4
+ Detailed snapshots: [2]
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 1,000 1,000 1,000 0 0
+ 2 2,000 2,000 2,000 0 0
+100.00% (2,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->100.00% (2,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefgh
ijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefg
hijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJab...
+ ->50.00% (1,000B) 0x........: main (long-names.c:68)
+ |
+ ->50.00% (1,000B) 0x........: abcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefg
hijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdef
ghijabcdefghijABCDEFGHIJabcdefghijABCDEFGHIJabcdefghijabcdefghijABCDEFGHIJa...
+ ->50.00% (1,000B) 0x........: main (long-names.c:68)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 3 3,000 3,000 3,000 0 0
Added: trunk/massif/tests/long-names.stderr.exp
===================================================================
--- trunk/massif/tests/long-names.stderr.exp (rev 0)
+++ trunk/massif/tests/long-names.stderr.exp 2008-01-20 22:30:52 UTC (rev 7355)
@@ -0,0 +1,2 @@
+
+
Added: trunk/massif/tests/long-names.vgtest
===================================================================
--- trunk/massif/tests/long-names.vgtest (rev 0)
+++ trunk/massif/tests/long-names.vgtest 2008-01-20 22:30:52 UTC (rev 7355)
@@ -0,0 +1,4 @@
+prog: long-names
+vgopts: --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3
+post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses
+cleanup: rm massif.out
|
|
From: Nicholas N. <nj...@cs...> - 2008-01-20 20:51:39
|
On Sun, 20 Jan 2008, Bart Van Assche wrote: > Changes: > - The exp-drd regression tests now run without producing assertion > failures and without hanging on Red Hat 7.3. It doesn't make sense > however to run exp-drd on Red Hat 7.3 -- while exp-drd works fine with > the NPTL, more work would be required to make exp-drd work with > linuxthreads. Is it possible to detect linuxthreads at startup and abort with an explanation? If exp-drd can't do anything useful on linuxthreads, we don't want people to run it and think their program is ok. Nick |
|
From: Bart V. A. <bar...@gm...> - 2008-01-20 18:57:01
|
Hello Julian, Can you please apply the attached patch ? Changes: - The exp-drd regression tests now run without producing assertion failures and without hanging on Red Hat 7.3. It doesn't make sense however to run exp-drd on Red Hat 7.3 -- while exp-drd works fine with the NPTL, more work would be required to make exp-drd work with linuxthreads. - Converted several tl_assert() calls into error messages. - Added a regression test called pth_barrier, which tests whether data races are detected in a program that uses barriers. The output exp-drd produces for this test program is not yet correct however. - Updated exp-drd/TODO.txt. Bart. |
|
From: Tom H. <th...@cy...> - 2008-01-20 03:46:39
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-01-20 03:20:05 GMT 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 == 373 tests, 15 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/sem_as_mutex2 (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-20 03:39:07
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-01-20 03:05:10 GMT 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 == 371 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) 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) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_cond_race (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-20 03:39:00
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-01-20 03:25:05 GMT 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 == 371 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/sem_as_mutex2 (stderr) ================================================= == 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 == 371 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 20 03:32:17 2008 --- new.short Sun Jan 20 03:39:01 2008 *************** *** 18,22 **** none/tests/mremap2 (stdout) - helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --- 18,22 ---- none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) + exp-drd/tests/sem_as_mutex2 (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-20 03:29:19
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-01-20 03:10:04 GMT 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 == 371 tests, 9 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) 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) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_cond_race (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-20 03:15:54
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-01-20 03:00:02 GMT 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 == 373 tests, 30 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |