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
(23) |
2
(40) |
3
(17) |
4
(10) |
|
5
(14) |
6
(41) |
7
(26) |
8
(23) |
9
(15) |
10
(25) |
11
(14) |
|
12
(23) |
13
(11) |
14
(18) |
15
(21) |
16
(18) |
17
(8) |
18
(14) |
|
19
(16) |
20
(15) |
21
(12) |
22
(11) |
23
(8) |
24
(11) |
25
(12) |
|
26
(9) |
27
(17) |
28
(31) |
29
(16) |
30
(10) |
31
(17) |
|
|
From: Josef W. <Jos...@gm...> - 2006-03-31 20:52:14
|
Hi,
while thinking about regression tests for callgrind, I found
out that there seems to be no way to post-process any further
files generated by a test, and eventually trigger a failure.
This would be handy to check for the expected call graph in
callgrind dump files.
What do you think about adding a post-test check which could
check for expected behaviour of the test and optionally,
by filtering the files and write them to stdout, be able to
check against expected results of generated files?
I think this could be useful for cachegrind or massif, too.
Patch attached for discussion.
Josef
Index: vg_regtest.in
===================================================================
--- vg_regtest.in (Revision 5807)
+++ vg_regtest.in (Arbeitskopie)
@@ -50,6 +50,7 @@
# - stdout_filter: <filter to run stdout through> (default: none)
# - stderr_filter: <filter to run stderr through> (default: ./filter_stderr)
# - prereq: <prerequisite command> (default: none)
+# - posttest: <post-test check command> (default: none)
# - cleanup: <post-test cleanup cmd to run> (default: none)
#
# Note that filters are necessary for stderr results to filter out things that
@@ -60,7 +61,8 @@
# stderr (filtered) is kept in <test>.stderr.exp[0-9]*.
#
# The prerequisite command, if present, must return 0 otherwise the test is
-# skipped.
+# skipped. The post-test command, if present, must return 0 and the stdout
+# match the expected stdout which is kept in <test>.posttest.exp[0-9]*.
#
# If results don't match, the output can be found in <test>.std<strm>.out,
# and the diff between expected and actual in <test>.std<strm>.diff[0-9]*.
@@ -86,12 +88,13 @@
my $stdout_filter; # filter program to run stdout results file through
my $stderr_filter; # filter program to run stderr results file through
my $prereq; # prerequisite test to satisfy before running test
+my $posttest; # check command after running test
my $cleanup; # cleanup command to run
my @failures; # List of failed tests
my $num_tests_done = 0;
-my %num_failures = (stderr => 0, stdout => 0);
+my %num_failures = (stderr => 0, stdout => 0, posttest => 0);
# Default valgrind to use is this build tree's (uninstalled) one
my $valgrind = "./coregrind/valgrind";
@@ -172,8 +175,8 @@
my ($f) = @_;
# Defaults.
- ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $prereq, $cleanup)
- = ("", undef, "", undef, undef, undef, undef);
+ ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $prereq, $posttest, $cleanup)
+ = ("", undef, "", undef, undef, undef, undef, undef);
# Every test directory must have a "filter_stderr"
$stderr_filter = validate_program(".", $default_stderr_filter, 1, 1);
@@ -195,6 +198,8 @@
$stderr_filter = validate_program(".", $1, 1, 1);
} elsif ($line =~ /^\s*prereq:\s*(.*)$/) {
$prereq = $1;
+ } elsif ($line =~ /^\s*posttest:\s*(.*)$/) {
+ $posttest = $1;
} elsif ($line =~ /^\s*cleanup:\s*(.*)$/) {
$cleanup = $1;
} else {
@@ -295,7 +300,20 @@
mysystem("$stderr_filter < $name.stderr.out > $tmp");
rename($tmp, "$name.stderr.out");
+ if (defined $posttest) {
+ if (mysystem("$posttest > $name.posttest.out") != 0) {
+ print("posttest failed: $posttest\n");
+ $num_failures{"posttest"}++;
+ }
+ else {
+ # Find all the .posttest.exp files. If none, use /dev/null.
+ my @posttest_exps = <$name.posttest.exp*>;
+ @posttest_exps = ( "/dev/null" ) if (0 == scalar @posttest_exps);
+ do_diffs($fullname, $name, "posttest", \@posttest_exps);
+ }
+ }
+
# Find all the .stdout.exp files. If none, use /dev/null.
my @stdout_exps = <$name.stdout.exp*>;
@stdout_exps = ( "/dev/null" ) if (0 == scalar @stdout_exps);
@@ -375,10 +393,11 @@
{
my $x = ( $num_tests_done == 1 ? "test" : "tests" );
- printf("\n== %d test%s, %d stderr failure%s, %d stdout failure%s =================\n",
+ printf("\n== %d test%s, %d stderr failure%s, %d stdout failure%s, %d posttest failure%s ==\n",
$num_tests_done, plural($num_tests_done),
$num_failures{"stderr"}, plural($num_failures{"stderr"}),
- $num_failures{"stdout"}, plural($num_failures{"stdout"}));
+ $num_failures{"stdout"}, plural($num_failures{"stdout"}),
+ $num_failures{"posttest"}, plural($num_failures{"posttest"}));
foreach my $failure (@failures) {
print "$failure\n";
@@ -415,7 +434,9 @@
}
summarise_results();
-if (0 == $num_failures{"stdout"} && 0 == $num_failures{"stderr"}) {
+if (0 == $num_failures{"stdout"} &&
+ 0 == $num_failures{"stderr"} &&
+ 0 == $num_failures{"posttest"}) {
exit 0;
} else {
exit 1;
|
|
From: <sv...@va...> - 2006-03-31 19:34:57
|
Author: weidendo
Date: 2006-03-31 20:34:51 +0100 (Fri, 31 Mar 2006)
New Revision: 5807
Log:
Simple regression test for callgrind:
run a custom client request.
By doing this, I found out that callgrind.h still defined
client requests for VG 2 :-( Obviously, nobody was using
them. This is fixed, and other small things to make the
test run, too.
Notice for myself: regression tests are needed.
Added:
trunk/callgrind/tests/clreq.c
trunk/callgrind/tests/clreq.stderr.exp
trunk/callgrind/tests/clreq.vgtest
trunk/callgrind/tests/filter_stderr
Modified:
trunk/callgrind/callgrind.h
trunk/callgrind/main.c
trunk/callgrind/tests/
trunk/callgrind/tests/Makefile.am
Modified: trunk/callgrind/callgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/callgrind.h 2006-03-31 13:16:15 UTC (rev 5806)
+++ trunk/callgrind/callgrind.h 2006-03-31 19:34:51 UTC (rev 5807)
@@ -13,7 +13,7 @@
This file is part of callgrind, a valgrind skin for cache simulation
and call tree tracing.
=20
- Copyright (C) 2003,2004 Josef Weidendorfer. All rights reserved.
+ Copyright (C) 2003-2006 Josef Weidendorfer. All rights reserved.
=20
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -61,6 +61,16 @@
=20
#include "valgrind.h"
=20
+/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
+ This enum comprises an ABI exported by Valgrind to programs
+ which use client requests. DO NOT CHANGE THE ORDER OF THESE
+ ENTRIES, NOR DELETE ANY -- add new ones at the end.
+
+ The identification ('C','T') for Callgrind has historical
+ reasons: it was called "Calltree" before. Besides, ('C','G') would
+ clash with cachegrind.
+ */
+
typedef
enum {
VG_USERREQ__DUMP_STATS =3D VG_USERREQ_TOOL_BASE('C','T'),
@@ -69,63 +79,69 @@
VG_USERREQ__DUMP_STATS_AT,
VG_USERREQ__START_INSTRUMENTATION,
VG_USERREQ__STOP_INSTRUMENTATION
- } Vg_CalltreeClientRequest;
+ } Vg_CallgrindClientRequest;
=20
-/* Dump current state of cost centers.
- This will also atomically zero the cost centers */
-#define CALLGRIND_DUMP_STATS() \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__DUMP_STATS, \
- 0, 0, 0, 0); \
- (void)0; \
- } while(0)
+/* Dump current state of cost centers, and zero them afterwards */
+#define CALLGRIND_DUMP_STATS =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__DUMP_STATS, =
\
+ 0, 0, 0, 0, 0); =
\
+ }
=20
-/* Dump current state of cost centers.
- This will also atomically zero the cost centers */
-#define CALLGRIND_DUMP_STATS_AT(pos_str) \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__DUMP_STATS_AT, \
- pos_str, 0, 0, 0); \
- (void)0; \
- } while(0)
+/* Dump current state of cost centers, and zero them afterwards.
+ The argument is appended to a string stating the reason which trigger=
ed
+ the dump. This string is written as a description field into the
+ profile data dump. */
+#define CALLGRIND_DUMP_STATS_AT(pos_str) =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__DUMP_STATS_AT, =
\
+ pos_str, 0, 0, 0, 0); =
\
+ }
=20
/* Zero cost centers */
-#define CALLGRIND_ZERO_STATS() \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__ZERO_STATS, \
- 0, 0, 0, 0); \
- (void)0; \
- } while(0)
+#define CALLGRIND_ZERO_STATS =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__ZERO_STATS, =
\
+ 0, 0, 0, 0, 0); =
\
+ }
=20
-/* Toggle collection state,
- * i.e. if events happening are collected into cost centers */
-#define CALLGRIND_TOGGLE_COLLECT() \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__TOGGLE_COLLECT, \
- 0, 0, 0, 0); \
- (void)0; \
- } while(0)
+/* Toggles collection state.
+ The collection state specifies whether the happening of events
+ should be noted or if they are to be ignored. Events are noted
+ by increment of counters in a cost center */
+#define CALLGRIND_TOGGLE_COLLECT =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__TOGGLE_COLLECT, =
\
+ 0, 0, 0, 0, 0); =
\
+ }
=20
-/* Start instrumentation if not already on */
-#define CALLGRIND_START_INSTRUMENTATION() \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__START_INSTRUMENTAT=
ION,\
- 0, 0, 0, 0); \
- (void)0; \
- } while(0)
+/* Start full callgrind instrumentation if not already switched on.
+ When cache simulation is done, it will flush the simulated cache;
+ this will lead to an artifical cache warmup phase afterwards with
+ cache misses which would not have happened in reality. */
+#define CALLGRIND_START_INSTRUMENTATION =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__START_INSTRUMENTATION, =
\
+ 0, 0, 0, 0, 0); =
\
+ }
=20
-/* Stop instrumentation if not already off */
-#define CALLGRIND_STOP_INSTRUMENTATION() \
- do { \
- unsigned int _qzz_res; \
- VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__STOP_INSTRUMENTATI=
ON,\
- 0, 0, 0, 0); \
- (void)0; \
- } while(0)
+/* Stop full callgrind instrumentation if not already switched off.
+ This flushes Valgrinds translation cache, and does no additional
+ instrumentation afterwards, which effectivly will run at the same
+ speed as the "none" tool (ie. at minimal slowdown).
+ Use this to bypass Callgrind aggregation for uninteresting code parts=
.
+ To start Callgrind in this mode to ignore the setup phase, use
+ the option "--instr-atstart=3Dno". */
+#define CALLGRIND_STOP_INSTRUMENTATION =
\
+ {unsigned int _qzz_res; =
\
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, =
\
+ VG_USERREQ__STOP_INSTRUMENTATION, =
\
+ 0, 0, 0, 0, 0); =
\
+ }
=20
#endif /* __CALLGRIND_H */
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-03-31 13:16:15 UTC (rev 5806)
+++ trunk/callgrind/main.c 2006-03-31 19:34:51 UTC (rev 5807)
@@ -801,7 +801,7 @@
case VG_USERREQ__DUMP_STATS_AT:
{
Char buf[512];
- VG_(sprintf)(buf,"Client Request: %d", args[1]);
+ VG_(sprintf)(buf,"Client Request: %s", args[1]);
CLG_(dump_profile)(buf, True);
*ret =3D 0; /* meaningless */
}
@@ -1042,20 +1042,23 @@
=20
CLG_(instrument_state) =3D CLG_(clo).instrument_atstart;
=20
- VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "For interactive control, run 'callgrind_con=
trol -h'.");
+ if (VG_(clo_verbosity > 0)) {
+ VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg,
+ "For interactive control, run 'callgrind_control -h'.=
");
+ }
}
=20
static
void CLG_(pre_clo_init)(void)
{
VG_(details_name) ("Callgrind");
- VG_(details_version) (VERSION);
+ VG_(details_version) (NULL);
VG_(details_description) ("a call-graph generating cache profile=
r");
VG_(details_copyright_author)("Copyright (C) 2002-2006, and GNU GPL'=
d, "
- "by J.Weidendorfer et al.");
+ "by Josef Weidendorfer et al.");
VG_(details_bug_reports_to) ("Jos...@gm...");
- VG_(details_avg_translation_sizeB) ( 155 );
+ VG_(details_avg_translation_sizeB) ( 245 );
=20
VG_(basic_tool_funcs) (CLG_(post_clo_init),
CLG_(instrument),
Property changes on: trunk/callgrind/tests
___________________________________________________________________
Name: svn:ignore
- Makefile
Makefile.in
+ callgrind.out.*
clreq
.deps
Makefile
Makefile.in
*.stderr.diff
*.stderr.out
*.stdout.diff
*.stdout.out
Modified: trunk/callgrind/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/Makefile.am 2006-03-31 13:16:15 UTC (rev 5806)
+++ trunk/callgrind/tests/Makefile.am 2006-03-31 19:34:51 UTC (rev 5807)
@@ -4,11 +4,13 @@
SUBDIRS =3D .
DIST_SUBDIRS =3D .
=20
-noinst_SCRIPTS =3D=20
+noinst_SCRIPTS =3D filter_stderr
=20
-EXTRA_DIST =3D=20
+EXTRA_DIST =3D clreq.vgtest clreq.stderr.exp=20
=20
-check_PROGRAMS =3D=20
+check_PROGRAMS =3D clreq
=20
AM_CPPFLAGS =3D -I$(top_srcdir)/include
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
+
+
Added: trunk/callgrind/tests/clreq.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.c (rev 0)
+++ trunk/callgrind/tests/clreq.c 2006-03-31 19:34:51 UTC (rev 5807)
@@ -0,0 +1,13 @@
+
+// Similar to Cachegrind, check if instrumentation works in the presence
+// of a client request. Uses a Callgrind request to check this.
+
+#include "../callgrind.h"
+
+int main(void)
+{
+ CALLGRIND_ZERO_STATS;
+
+ return RUNNING_ON_VALGRIND;
+}
+
Added: trunk/callgrind/tests/clreq.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Added: trunk/callgrind/tests/clreq.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.vgtest (rev 0)
+++ trunk/callgrind/tests/clreq.vgtest 2006-03-31 19:34:51 UTC (rev 5807)
@@ -0,0 +1,3 @@
+prog: clreq
+vgopts: -q
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/filter_stderr
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/filter_stderr (rev 0)
+++ trunk/callgrind/tests/filter_stderr 2006-03-31 19:34:51 UTC (rev 5807=
)
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+dir=3D`dirname $0`
+
+$dir/../../tests/filter_stderr_basic |
+
+# Remove "Callgrind, ..." line and the following copyright line.
+sed "/^Callgrind, a call-graph generating cache profiler./ , /./ d" |
+
+# Remove numbers from I/D/L2 "refs:" lines
+sed "s/\(\(I\|D\|L2\) *refs:\)[ 0-9,()+rdw]*$/\1/" |
+
+# Remove numbers from I1/D1/L2/L2i/L2d "misses:" and "miss rates:" lines
+sed "s/\(\(I1\|D1\|L2\|L2i\|L2d\) *\(misses\|miss rate\):\)[ 0-9,()+rdw%=
\.]*$/\1/" |
+
+# Remove CPUID warnings lines for P4s and other machines
+sed "/warning: Pentium 4 with 12 KB micro-op instruction trace cache/d" =
|
+sed "/Simulating a 16 KB I-cache with 32 B lines/d" |
+sed "/warning: L3 cache detected but ignored/d" |
+sed "/Warning: Cannot auto-detect cache config on PPC.., using one or mo=
re defaults/d"
Property changes on: trunk/callgrind/tests/filter_stderr
___________________________________________________________________
Name: svn:executable
+ *
|
|
From: <sv...@va...> - 2006-03-31 13:16:28
|
Author: weidendo
Date: 2006-03-31 14:16:15 +0100 (Fri, 31 Mar 2006)
New Revision: 5806
Log:
Option --dump-every-bb now takes a 64bit value on user
request. Update/clarify documentation.
Modified:
trunk/callgrind/clo.c
trunk/callgrind/docs/cl-manual.xml
trunk/callgrind/global.h
trunk/callgrind/threads.c
Modified: trunk/callgrind/clo.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/clo.c 2006-03-31 12:53:22 UTC (rev 5805)
+++ trunk/callgrind/clo.c 2006-03-31 13:16:15 UTC (rev 5806)
@@ -618,7 +618,7 @@
CLG_(clo).dump_bb =3D False;
=20
else if (0 =3D=3D VG_(strncmp)(arg, "--dump-every-bb=3D", 16))
- CLG_(clo).dump_every_bb =3D (Int)VG_(atoll)(&arg[16]);
+ CLG_(clo).dump_every_bb =3D (ULong)VG_(atoll)(&arg[16]);
=20
=20
else if (0 =3D=3D VG_(strcmp)(arg, "--collect-alloc=3Dyes"))
Modified: trunk/callgrind/docs/cl-manual.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/docs/cl-manual.xml 2006-03-31 12:53:22 UTC (rev 5805)
+++ trunk/callgrind/docs/cl-manual.xml 2006-03-31 13:16:15 UTC (rev 5806)
@@ -235,9 +235,7 @@
<para><command>Periodic dumping after execution of a specified
number of basic blocks</command>. For this, use the command line
option <option><xref linkend=3D"opt.dump-every-bb"/>=3Dcount</opti=
on>.
- The resultion of the internal basic block counter of Valgrind is
- only rough, so you should at least specify a interval of 50000
- basic blocks.</para>
+ </para>
</listitem>
=20
<listitem>
@@ -539,7 +537,11 @@
<option><![CDATA[--dump-every-bb=3D<count> [default: 0, never] ]]>=
</option>
</term>
<listitem>
- <para>Dump profile data each <count> basic blocks</para>
+ <para>Dump profile data every <count> basic blocks.
+ Whether a dump is needed is only checked when Valgrinds internal
+ scheduler is run. Therefore, the minimum setting useful is about 1=
00000.
+ The count is a 64-bit value to make long dump periods possible.
+ </para>
</listitem>
</varlistentry>
=20
Modified: trunk/callgrind/global.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/global.h 2006-03-31 12:53:22 UTC (rev 5805)
+++ trunk/callgrind/global.h 2006-03-31 13:16:15 UTC (rev 5806)
@@ -70,7 +70,7 @@
Bool dump_bbs; /* Dump basic block information? */
=20
/* Dump generation options */
- Int dump_every_bb; /* Dump every xxx BBs. */
+ ULong dump_every_bb; /* Dump every xxx BBs. */
=20
/* Collection options */
Bool separate_threads; /* Separate threads in dump? */
Modified: trunk/callgrind/threads.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/threads.c 2006-03-31 12:53:22 UTC (rev 5805)
+++ trunk/callgrind/threads.c 2006-03-31 13:16:15 UTC (rev 5806)
@@ -182,7 +182,7 @@
=20
if (CLG_(clo).dump_every_bb >0) {
if (CLG_(stat).bb_executions - bbs_done > CLG_(clo).dump_every_bb=
) {
- VG_(sprintf)(buf, "--dump-every-bb=3D%d", CLG_(clo).dump_ever=
y_bb);
+ VG_(sprintf)(buf, "--dump-every-bb=3D%llu", CLG_(clo).dump_ev=
ery_bb);
CLG_(dump_profile)(buf, False);
bbs_done =3D CLG_(stat).bb_executions;
}
|
|
From: <sv...@va...> - 2006-03-31 12:53:26
|
Author: weidendo
Date: 2006-03-31 13:53:22 +0100 (Fri, 31 Mar 2006)
New Revision: 5805
Log:
Fix typos
Modified:
trunk/callgrind/callgrind.h
trunk/helgrind/helgrind.h
Modified: trunk/callgrind/callgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/callgrind.h 2006-03-31 12:24:37 UTC (rev 5804)
+++ trunk/callgrind/callgrind.h 2006-03-31 12:53:22 UTC (rev 5805)
@@ -3,7 +3,7 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (mpiwrap.c) only. The rest of Valgrind is licensed under the
+ file (callgrind.h) only. The rest of Valgrind is licensed under the
terms of the GNU General Public License, version 2, unless
otherwise indicated. See the COPYING file in the source
distribution for details.
Modified: trunk/helgrind/helgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/helgrind/helgrind.h 2006-03-31 12:24:37 UTC (rev 5804)
+++ trunk/helgrind/helgrind.h 2006-03-31 12:53:22 UTC (rev 5805)
@@ -2,7 +2,7 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (mpiwrap.c) only. The rest of Valgrind is licensed under the
+ file (helgrind.h) only. The rest of Valgrind is licensed under the
terms of the GNU General Public License, version 2, unless
otherwise indicated. See the COPYING file in the source
distribution for details.
|
|
From: <sv...@va...> - 2006-03-31 12:24:51
|
Author: njn Date: 2006-03-31 13:24:48 +0100 (Fri, 31 Mar 2006) New Revision: 273 Log: update memcheck description Modified: trunk/info/tools.html Modified: trunk/info/tools.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/info/tools.html 2006-03-27 12:02:53 UTC (rev 272) +++ trunk/info/tools.html 2006-03-31 12:24:48 UTC (rev 273) @@ -1,6 +1,6 @@ <h1>Valgrind's Tool Suite</h1> =20 -<p>The Valgrind distribution includes five useful debugging and +<p>The Valgrind distribution includes four useful debugging and profiling tools:</p> =20 <div id=3D"pagemenu"> @@ -25,17 +25,16 @@ primarily at C and C++ programs. When a program is run under Memcheck's supervision, all reads and writes of memory are checked, and calls to malloc/new/free/delete are intercepted. As -a result, Memcheck can detect:</p> +a result, Memcheck can detect if your program:</p> <ul> -<li>Use of uninitialised memory</li> -<li>Reading/writing memory after it has been free'd</li> -<li>Reading/writing off the end of malloc'd blocks</li> -<li>Reading/writing inappropriate areas on the stack</li> -<li>Memory leaks -- where pointers to malloc'd blocks are lost forever</= li> -<li>Passing of uninitialised and/or unaddressible memory to system calls= </li> -<li>Mismatched use of malloc/new/new [] vs free/delete/delete []</li> -<li>Overlapping src and dst pointers in memcpy() and related functions</= li> -<li>Some misuses of the POSIX pthreads API</li> +<li>Accesses memory it shouldn't (areas not yet allocated, areas that ha= ve + been freed, areas past the end of heap blocks, inaccessible areas of + the stack).</li> +<li>Uses uninitialised values in dangerous ways.</li> +<li>Leaks memory.</li> +<li>Does bad frees of heap blocks (double frees, mismatched frees).</li> +<li>Passes overlapping source and destination memory blocks to memcpy() = and + related functions.</li> </ul> =20 <p>Memcheck reports these errors as soon as they occur, giving |
|
From: <sv...@va...> - 2006-03-31 12:24:44
|
Author: njn Date: 2006-03-31 13:24:37 +0100 (Fri, 31 Mar 2006) New Revision: 5804 Log: update Memcheck description Modified: trunk/README Modified: trunk/README =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/README 2006-03-31 12:05:04 UTC (rev 5803) +++ trunk/README 2006-03-31 12:24:37 UTC (rev 5804) @@ -21,24 +21,27 @@ also perform detailed profiling, to speed up and reduce memory use of yo= ur programs. =20 -The Valgrind distribution currently includes five tools: two memory erro= r -detectors, a thread error detector, a cache profiler and a heap profiler= . +The Valgrind distribution currently includes four tools: a memory error +detector, a thread error detector, a cache profiler and a heap profiler. =20 To give you an idea of what Valgrind tools do, when a program is run -under the supervision of the first memory error detector tool, all reads -and writes of memory are checked, and calls to malloc/new/free/delete -are intercepted. As a result, it can detect problems such as: +under the supervision of Memcheck, the memory error detector tool, all +reads and writes of memory are checked, and calls to malloc/new/free/del= ete +are intercepted. As a result, Memcheck can detect if your program: =20 - Use of uninitialised memory - Reading/writing memory after it has been free'd - Reading/writing off the end of malloc'd blocks - Reading/writing inappropriate areas on the stack - Memory leaks -- where pointers to malloc'd blocks are lost forever - Passing of uninitialised and/or unaddressible memory to system calls - Mismatched use of malloc/new/new [] vs free/delete/delete [] - Overlaps of arguments to strcpy() and related functions - Some abuses of the POSIX pthread API + - Accesses memory it shouldn't (areas not yet allocated, areas that h= ave + been freed, areas past the end of heap blocks, inaccessible areas o= f + the stack). =20 + - Uses uninitialised values in dangerous ways. + + - Leaks memory. + + - Does bad frees of heap blocks (double frees, mismatched frees). + + - Passes overlapping source and destination memory blocks to memcpy()= and + related functions. + Problems like these can be difficult to find by other means, often lying undetected for long periods, then causing occasional, difficult-to-diagnose crashes. When one of these errors occurs, you can |
|
From: <sv...@va...> - 2006-03-31 12:05:15
|
Author: njn
Date: 2006-03-31 13:05:04 +0100 (Fri, 31 Mar 2006)
New Revision: 5803
Log:
Make the BSD-style license notices slightly more accurate.
Modified:
trunk/callgrind/callgrind.h
trunk/docs/xml/manual-core.xml
trunk/helgrind/helgrind.h
trunk/include/valgrind.h
trunk/memcheck/memcheck.h
Modified: trunk/callgrind/callgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/callgrind.h 2006-03-31 11:57:59 UTC (rev 5802)
+++ trunk/callgrind/callgrind.h 2006-03-31 12:05:04 UTC (rev 5803)
@@ -3,9 +3,10 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (callgrind.h) only. The entire rest of Valgrind is licensed
- under the terms of the GNU General Public License, version 2. See
- the COPYING file in the source distribution for details.
+ file (mpiwrap.c) only. The rest of Valgrind is licensed under the
+ terms of the GNU General Public License, version 2, unless
+ otherwise indicated. See the COPYING file in the source
+ distribution for details.
=20
----------------------------------------------------------------
=20
Modified: trunk/docs/xml/manual-core.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/xml/manual-core.xml 2006-03-31 11:57:59 UTC (rev 5802)
+++ trunk/docs/xml/manual-core.xml 2006-03-31 12:05:04 UTC (rev 5803)
@@ -1281,8 +1281,8 @@
<para>You are encouraged to copy the <filename>valgrind/*.h</filename> h=
eaders
into your project's include directory, so your program doesn't have a
compile-time dependency on Valgrind being installed. The Valgrind heade=
rs,
-unlike the rest of the code, are under a BSD-style license so you may in=
clude
-them without worrying about license incompatibility.</para>
+unlike most of the rest of the code, are under a BSD-style license so yo=
u may
+include them without worrying about license incompatibility.</para>
=20
<para>Here is a brief description of the macros available in
<filename>valgrind.h</filename>, which work with more than one
@@ -2398,7 +2398,7 @@
<computeroutput>PMPI_Send</computeroutput>, or receiving data into a
buffer which is too small.</para>
=20
-<para>Unlike the rest of Valgrind, the wrapper library is subject to a
+<para>Unlike most of the rest of Valgrind, the wrapper library is subjec=
t to a
BSD-style license, so you can link it into any code base you like.
See the top of <computeroutput>auxprogs/libmpiwrap.c</computeroutput>
for details.</para>
Modified: trunk/helgrind/helgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/helgrind/helgrind.h 2006-03-31 11:57:59 UTC (rev 5802)
+++ trunk/helgrind/helgrind.h 2006-03-31 12:05:04 UTC (rev 5803)
@@ -2,9 +2,10 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (helgrind.h) only. The entire rest of Valgrind is licensed
- under the terms of the GNU General Public License, version 2. See
- the COPYING file in the source distribution for details.
+ file (mpiwrap.c) only. The rest of Valgrind is licensed under the
+ terms of the GNU General Public License, version 2, unless
+ otherwise indicated. See the COPYING file in the source
+ distribution for details.
=20
----------------------------------------------------------------
=20
Modified: trunk/include/valgrind.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/valgrind.h 2006-03-31 11:57:59 UTC (rev 5802)
+++ trunk/include/valgrind.h 2006-03-31 12:05:04 UTC (rev 5803)
@@ -2,9 +2,10 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (valgrind.h) only. The entire rest of Valgrind is licensed
- under the terms of the GNU General Public License, version 2. See
- the COPYING file in the source distribution for details.
+ file (valgrind.h) only. The rest of Valgrind is licensed under the
+ terms of the GNU General Public License, version 2, unless
+ otherwise indicated. See the COPYING file in the source
+ distribution for details.
=20
----------------------------------------------------------------
=20
Modified: trunk/memcheck/memcheck.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/memcheck.h 2006-03-31 11:57:59 UTC (rev 5802)
+++ trunk/memcheck/memcheck.h 2006-03-31 12:05:04 UTC (rev 5803)
@@ -3,9 +3,10 @@
----------------------------------------------------------------
=20
Notice that the following BSD-style license applies to this one
- file (memcheck.h) only. The entire rest of Valgrind is licensed
- under the terms of the GNU General Public License, version 2. See
- the COPYING file in the source distribution for details.
+ file (memcheck.h) only. The rest of Valgrind is licensed under the
+ terms of the GNU General Public License, version 2, unless
+ otherwise indicated. See the COPYING file in the source
+ distribution for details.
=20
----------------------------------------------------------------
=20
|
|
From: <sv...@va...> - 2006-03-31 11:58:12
|
Author: njn
Date: 2006-03-31 12:57:59 +0100 (Fri, 31 Mar 2006)
New Revision: 5802
Log:
Terminology change: previously in Memcheck we had the four states:
noaccess, writable, readable, other
Now they are:
noaccess, undefined, defined, partdefined
As a result, the following names:
make_writable, make_readable,
check_writable, check_readable, check_defined
have become:
make_mem_undefined, make_mem_defined,
check_mem_is_addressable, check_mem_is_defined, check_value_is_defined
(and likewise for the upper-case versions for client request macros).
The old MAKE_* and CHECK_* macros still work for backwards compatibility.
This is much better, because the old names were subtly misleading. For
example:
- "readable" really meant "readable and writable".
- "writable" really meant "writable and maybe readable, depending on ho=
w
the read value is used".
- "check_writable" really meant "check writable or readable"
The new names avoid these problems.
The recently-added macro which was called MAKE_DEFINED is now
MAKE_MEM_DEFINED_IF_ADDRESSABLE.
I also corrected the spelling of "addressable" in numerous places in
memcheck.h.
Modified:
trunk/NEWS
trunk/auxprogs/libmpiwrap.c
trunk/coregrind/m_mallocfree.c
trunk/include/valgrind.h
trunk/memcheck/docs/mc-manual.xml
trunk/memcheck/mc_include.h
trunk/memcheck/mc_main.c
trunk/memcheck/mc_malloc_wrappers.c
trunk/memcheck/memcheck.h
trunk/memcheck/tests/addressable.c
trunk/memcheck/tests/clientperm.c
trunk/memcheck/tests/custom_alloc.c
trunk/memcheck/tests/mempool.c
trunk/memcheck/tests/pointer-trace.c
trunk/memcheck/tests/post-syscall.c
trunk/memcheck/tests/sh-mem.c
trunk/memcheck/tests/x86/scalar.c
[... diff too large to include ...]
|
|
From: <js...@ac...> - 2006-03-31 11:13:46
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-03-31 02:00: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 == 196 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: Wilson L. <wl...@gm...> - 2006-03-31 07:57:13
|
SGksCgpJIGFtIHRyeWluZyB0byBydW4gdmFsZ3JpbmQgdG8gZGVidWcgYSBlQ29zIHN5bnRoIChp LmUuIGkzODYgZXhlY3V0YWJsZQpmaWxlKS4KSXQgc2VlbXMgdGhhdCBpdCBjYW4gd29yay4KCkhv d2V2ZXIsIGl0IGNhbm5vdCBnZXQgYSBzdGFjayBmcmFtZSBiYWNrdHJhY2UgbGlzdC4KCkkgaGF2 ZSB0cnkgdG8gYWRkICJjbGllbnQgcmV1cWVzdCIgaW4gb3JkZXIgdG8gc3BlY2ZpYyB0aGUgbmV3 IHN0YWNrIG9mIGVhY2gKdGhyZWFkIGluIGVDb3MuCkhvd2V2ZXIsIGl0IGRvZXMgbm90IHdvcmtz LgoKSXMgdGhlcmUgYW55IGd1aWRlbGluZSB0aGF0IEkgY2FuIGZvbGxvdz8gVGhlcmVmb3JlLCBJ IGNhbiBwb3J0IHZhbGdyaW5kIHRvCndvcmsgd2l0aCBlQ29zIHN5bnRoIHBsYXRmb3JtLgoKSSB0 aGluayB0aGF0IGVDb3MgcG9ydGluZyBzaG91bGQgYmUgYWxtb3N0IGFzIHNhbWUgYXMgV0lORS4K CgotLQpCZXN0IHJlZ2FyZHMsCldpbHNvbgo= |
|
From: <js...@ac...> - 2006-03-31 03:02:00
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-03-31 03:30:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 227 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2006-03-31 02:55:14
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-03-31 04:40:00 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 == 201 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (stdout) |
|
From: Tom H. <to...@co...> - 2006-03-31 02:44:35
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-03-31 03:30:08 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 == 229 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 229 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Mar 31 03:37:25 2006 --- new.short Fri Mar 31 03:44:25 2006 *************** *** 8,12 **** ! == 229 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) - memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) --- 8,11 ---- ! == 229 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-31 02:32:47
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-03-31 03:15:08 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 == 228 tests, 21 stderr failures, 1 stdout failure ================= 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-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (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/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-31 02:26:08
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-03-31 03:10:06 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 == 251 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Mar 31 03:18:55 2006 --- new.short Fri Mar 31 03:26:01 2006 *************** *** 8,11 **** ! == 251 tests, 6 stderr failures, 1 stdout failure ================= ! memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) --- 8,10 ---- ! == 251 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-31 02:25:01
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-03-31 03:05:14 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 == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-31 02:14:33
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-03-31 03:00:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 251 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) |