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
(15) |
|
2
(24) |
3
(16) |
4
(17) |
5
(11) |
6
(20) |
7
(11) |
8
(15) |
|
9
(10) |
10
(9) |
11
(10) |
12
(24) |
13
(16) |
14
(15) |
15
(8) |
|
16
(13) |
17
(15) |
18
(35) |
19
(11) |
20
(10) |
21
(11) |
22
(9) |
|
23
(10) |
24
(9) |
25
(9) |
26
(9) |
27
(9) |
28
(12) |
29
(16) |
|
30
(12) |
|
|
|
|
|
|
|
From: Vince W. <vi...@cs...> - 2006-04-07 21:56:28
|
Hello I've been working on a few plugins that generate memory traces of > 2GB. So this small patch just adds VKI_O_LARGEFILE so that I can VG_(open) files with this flag and thus have files more than 2GB. Vince |
|
From: <sv...@va...> - 2006-04-07 12:47:17
|
Author: sewardj
Date: 2006-04-07 13:47:05 +0100 (Fri, 07 Apr 2006)
New Revision: 5835
Log:
Oops: when adding translations to the auxiliary transtab, don't forget to
ensure D-I cache coherence. Fixes SIGILLs in fn wrapping failures on low=
end
PowerPCs.
Modified:
trunk/coregrind/m_transtab.c
Modified: trunk/coregrind/m_transtab.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/coregrind/m_transtab.c 2006-04-07 11:52:55 UTC (rev 5834)
+++ trunk/coregrind/m_transtab.c 2006-04-07 12:47:05 UTC (rev 5835)
@@ -1334,6 +1334,8 @@
for (j =3D 0; j < code_len; j++)
dstP[j] =3D srcP[j];
=20
+ invalidate_icache( dstP, code_len );
+
unredir_tt[i].inUse =3D True;
unredir_tt[i].vge =3D *vge;
unredir_tt[i].hcode =3D (Addr)dstP;
|
|
From: <sv...@va...> - 2006-04-07 11:53:10
|
Author: njn
Date: 2006-04-07 12:52:55 +0100 (Fri, 07 Apr 2006)
New Revision: 5834
Log:
Tweaked Lackey. Main change is that the default instrumentation is now o=
nly
added if you specify --basic-counts=3Dyes (which is the default). So
all of the instrumentation is now controlled by a command-line option (on=
e
of --basic-counts, --detailed-counts or --trace-mem) and so if you turn t=
hem
all off it behaves like Nulgrind. This makes it clearer what's going on =
and
easier for newbies to modify.
Modified:
trunk/lackey/lk_main.c
Modified: trunk/lackey/lk_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/lackey/lk_main.c 2006-04-06 22:59:35 UTC (rev 5833)
+++ trunk/lackey/lk_main.c 2006-04-07 11:52:55 UTC (rev 5834)
@@ -1,12 +1,11 @@
=20
/*--------------------------------------------------------------------*/
-/*--- An example Valgrind tool. ---*/
-/*--- lk_main.c ---*/
+/*--- An example Valgrind tool. lk_main.c ---*/
/*--------------------------------------------------------------------*/
=20
/*
This file is part of Lackey, an example Valgrind tool that does
- some simple program measurement.
+ some simple program measurement and tracing.
=20
Copyright (C) 2002-2005 Nicholas Nethercote
nj...@va...
@@ -31,23 +30,36 @@
=20
// This tool shows how to do some basic instrumentation.
//
-// In particular, if you are interested in tracing every load and store =
a
-// program does, use the --trace-mem=3Dyes option. Please note that the
-// address trace is good, but not perfect; see Section 3.3.7 of Nichola=
s
-// Nethercote's PhD dissertation "Dynamic Binary Analysis and
-// Instrumentation", 2004, for details about the few loads and stores th=
at
-// it misses, and other caveats about the accuracy of the address trace.
+// There are three kinds of instrumentation it can do. They can be turn=
ed
+// on/off independently with command line options:
//
+// * --basic-counts : do basic counts, eg. number of instructions
+// executed, jumps executed, etc.
+// * --detailed-counts: do more detailed counts: number of loads, store=
s
+// and ALU operations of different sizes.
+// * --trace-mem=3Dyes: trace all (data) memory accesses.
+//
+// The code for each kind of instrumentation is guarded by a clo_* varia=
ble:
+// clo_basic_counts, clo_detailed_counts and clo_trace_mem.
+//
+// If you want to modify any of the instrumentation code, look for the c=
ode
+// that is guarded by the relevant clo_* variable (eg. clo_trace_mem)
+// If you're not interested in the other kinds of instrumentation you ca=
n
+// remove them. If you want to do more complex modifications, please re=
ad
+// VEX/pub/libvex_ir.h to understand the intermediate representation.
+//
+//
+// Specific Details about --trace-mem=3Dyes
+// --------------------------------------
+// The address trace produced by --trace-mem=3Dyes is good, but not perf=
ect;
+// see Section 3.3.7 of Nicholas Nethercote's PhD dissertation "Dynamic
+// Binary Analysis and Instrumentation", 2004, for details about the few
+// loads and stores that it misses, and other caveats about the accuracy=
of
+// the address trace.
+//
// [Actually, the traces aren't quite right because instructions that mo=
dify
// a memory location are treated like a load followed by a store.]
//
-// If you want to modify how the memory traces are printed/gathered, loo=
k at
-// the code that is controlled by the variable 'lk_clo_trace_mem' and th=
e
-// functions 'trace_load()' and 'trace_mem'.. With a bit of effort you
-// should be able to see which other bits of code can be removed, if tha=
t's
-// what you want. If you want to do more complex modifications, please =
read
-// VEX/pub/libvex_ir.h to understand the intermediate representation.
-//
// For further inspiration, you should look at cachegrind/cg_main.c whic=
h
// handles memory accesses in a more sophisticated way -- it groups them
// together for processing into twos and threes so that fewer C calls ar=
e
@@ -62,40 +74,44 @@
#include "pub_tool_options.h"
#include "pub_tool_machine.h" // VG_(fnptr_to_fnentry)
=20
-/* The name of the function of which the number of calls is to be
- * counted, with default. Override with command line option
- * --fnname. */
-static Char* lk_clo_fnname =3D "_dl_runtime_resolve";
+/*------------------------------------------------------------*/
+/*--- Command line options ---*/
+/*------------------------------------------------------------*/
=20
-/* If true, show statistics about loads, stores and alu ops. Set
- * with command line option --detailed-counts. */
-static Bool lk_clo_detailed_counts =3D False;
+/* Command line options controlling instrumentation kinds, as described =
at
+ * the top of this file. */
+static Bool clo_basic_counts =3D True;
+static Bool clo_detailed_counts =3D False;
+static Bool clo_trace_mem =3D False;
=20
-/* If true, print the trace of loads and stores. Set with --trace-mem. =
*/
-static Bool lk_clo_trace_mem =3D False;
+/* The name of the function of which the number of calls (under
+ * --basic-counts=3Dyes) is to be counted, with default. Override with c=
ommand
+ * line option --fnname. */
+static Char* clo_fnname =3D "_dl_runtime_resolve";
=20
-/***********************************************************************
- * Implement the needs_command_line_options for Valgrind.
- **********************************************************************/
-
static Bool lk_process_cmd_line_option(Char* arg)
{
- VG_STR_CLO(arg, "--fnname", lk_clo_fnname)
- else VG_BOOL_CLO(arg, "--detailed-counts", lk_clo_detailed_counts)
- else VG_BOOL_CLO(arg, "--trace-mem", lk_clo_trace_mem)
+ VG_STR_CLO(arg, "--fnname", clo_fnname)
+ else VG_BOOL_CLO(arg, "--basic-counts", clo_basic_counts)
+ else VG_BOOL_CLO(arg, "--detailed-counts", clo_detailed_counts)
+ else VG_BOOL_CLO(arg, "--trace-mem", clo_trace_mem)
else
return False;
=20
- tl_assert(lk_clo_fnname);
- tl_assert(lk_clo_fnname[0]);
+ tl_assert(clo_fnname);
+ tl_assert(clo_fnname[0]);
return True;
}
=20
static void lk_print_usage(void)
{ =20
VG_(printf)(
-" --fnname=3D<name> count calls to <name> [_dl_runtime_reso=
lve]\n"
+" --basic-counts=3Dno|yes count instructions, jumps, etc. [no]\n"
" --detailed-counts=3Dno|yes count loads, stores and alu ops [no]\n"
+" --trace-mem=3Dno|yes trace all loads and stores [no]\n"
+" --fnname=3D<name> count calls to <name> (only used if\n"
+" --basic-count=3Dyes) [_dl_runtime_resolv=
e]\n"
+ =20
);
}
=20
@@ -103,9 +119,9 @@
{ =20
}
=20
-/***********************************************************************
- * Data and helpers related to the default operation of Lackey.
- **********************************************************************/
+/*------------------------------------------------------------*/
+/*--- Data and helpers for --basic-counts ---*/
+/*------------------------------------------------------------*/
=20
/* Nb: use ULongs because the numbers can get very big */
static ULong n_func_calls =3D 0;
@@ -151,9 +167,9 @@
n_Jccs_untaken++;
}
=20
-/***********************************************************************
- * Data and helpers related to --detailed-counts.
- **********************************************************************/
+/*------------------------------------------------------------*/
+/*--- Data and helpers for --detailed-counts ---*/
+/*------------------------------------------------------------*/
=20
/* --- Operations --- */
=20
@@ -248,9 +264,9 @@
}
=20
=20
-/***********************************************************************
- * Data and helpers related to --trace-mem. =20
- **********************************************************************/
+/*------------------------------------------------------------*/
+/*--- Data and helpers for --trace-mem ---*/
+/*------------------------------------------------------------*/
=20
static VG_REGPARM(2) void trace_load(Addr addr, SizeT size)
{
@@ -262,17 +278,20 @@
VG_(printf)("store: %p, %d\n", addr, size);
}
=20
-/***********************************************************************
- * Implement the basic_tool_funcs for Valgrind.
- **********************************************************************/
=20
+/*------------------------------------------------------------*/
+/*--- Basic tool functions ---*/
+/*------------------------------------------------------------*/
+
static void lk_post_clo_init(void)
{
Int op, tyIx;
=20
- for (op =3D 0; op < N_OPS; op++)
- for (tyIx =3D 0; tyIx < N_TYPES; tyIx++)
- detailCounts[op][tyIx] =3D 0;
+ if (clo_detailed_counts) {
+ for (op =3D 0; op < N_OPS; op++)
+ for (tyIx =3D 0; tyIx < N_TYPES; tyIx++)
+ detailCounts[op][tyIx] =3D 0;
+ }
}
=20
static
@@ -309,88 +328,86 @@
i++;
}
=20
- /* Count this basic block. */
- di =3D unsafeIRDirty_0_N( 0, "add_one_BB_entered",=20
- VG_(fnptr_to_fnentry)( &add_one_BB_entered=
),
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ if (clo_basic_counts) {
+ /* Count this basic block. */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_BB_entered",=20
+ VG_(fnptr_to_fnentry)( &add_one_BB_ente=
red ),
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
=20
for (/*use current i*/; i < bb_in->stmts_used; i++) {
IRStmt* st =3D bb_in->stmts[i];
if (!st || st->tag =3D=3D Ist_NoOp) continue;
=20
- /* Count one VEX statement. */
- di =3D unsafeIRDirty_0_N( 0, "add_one_IRStmt",=20
- VG_(fnptr_to_fnentry)( &add_one_IRStmt =
),=20
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ if (clo_basic_counts) {
+ /* Count one VEX statement. */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_IRStmt",=20
+ VG_(fnptr_to_fnentry)( &add_one_IRSt=
mt ),=20
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
=20
switch (st->tag) {
case Ist_IMark:
- /* Count guest instruction. */
- di =3D unsafeIRDirty_0_N( 0, "add_one_guest_instr",
- VG_(fnptr_to_fnentry)( &add_one_g=
uest_instr ),=20
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
- =20
- /* An unconditional branch to a known destination in the
- * guest's instructions can be represented, in the IRBB to
- * instrument, by the VEX statements that are the
- * translation of that known destination. This feature is
- * called 'BB chasing' and can be influenced by command
- * line option --vex-guest-chase-thresh.
- *
- * To get an accurate count of the calls to a specific
- * function, taking BB chasing into account, we need to
- * check for each guest instruction (Ist_IMark) if it is
- * the entry point of a function.
- */
- tl_assert(lk_clo_fnname);
- tl_assert(lk_clo_fnname[0]);
- if (VG_(get_fnname_if_entry)(st->Ist.IMark.addr,=20
- fnname, sizeof(fnname))
- && 0 =3D=3D VG_(strcmp)(fnname, lk_clo_fnname)) {
- di =3D unsafeIRDirty_0_N(=20
- 0, "add_one_func_call",=20
- VG_(fnptr_to_fnentry)( &add_one_func_call ),=20
- mkIRExprVec_0() );
+ if (clo_basic_counts) {
+ /* Count guest instruction. */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_guest_instr",
+ VG_(fnptr_to_fnentry)( &add_on=
e_guest_instr ),=20
+ mkIRExprVec_0() );
addStmtToIRBB( bb, IRStmt_Dirty(di) );
+
+ /* An unconditional branch to a known destination in the
+ * guest's instructions can be represented, in the IRBB t=
o
+ * instrument, by the VEX statements that are the
+ * translation of that known destination. This feature is
+ * called 'BB chasing' and can be influenced by command
+ * line option --vex-guest-chase-thresh.
+ *
+ * To get an accurate count of the calls to a specific
+ * function, taking BB chasing into account, we need to
+ * check for each guest instruction (Ist_IMark) if it is
+ * the entry point of a function.
+ */
+ tl_assert(clo_fnname);
+ tl_assert(clo_fnname[0]);
+ if (VG_(get_fnname_if_entry)(st->Ist.IMark.addr,=20
+ fnname, sizeof(fnname))
+ && 0 =3D=3D VG_(strcmp)(fnname, clo_fnname)) {
+ di =3D unsafeIRDirty_0_N(=20
+ 0, "add_one_func_call",=20
+ VG_(fnptr_to_fnentry)( &add_one_func_call )=
,=20
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
}
addStmtToIRBB( bb, st );
break;
=20
case Ist_Exit:
- /* Count Jcc */
- di =3D unsafeIRDirty_0_N( 0, "add_one_Jcc",=20
- VG_(fnptr_to_fnentry)( &add_one_J=
cc ),=20
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ if (clo_basic_counts) {
+ /* Count Jcc */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_Jcc",=20
+ VG_(fnptr_to_fnentry)( &add_on=
e_Jcc ),=20
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
=20
addStmtToIRBB( bb, st );
=20
- /* Count non-taken Jcc */
- di =3D unsafeIRDirty_0_N( 0, "add_one_Jcc_untaken",=20
- VG_(fnptr_to_fnentry)( &add_one_J=
cc_untaken ),
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ if (clo_basic_counts) {
+ /* Count non-taken Jcc */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_Jcc_untaken",=20
+ VG_(fnptr_to_fnentry)(
+ &add_one_Jcc_untaken ),
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
break;
=20
- /* Someone on the users list asked for something like this
- * just the other day (Christian Stimming, "Fast profiling in
- * valgrind?", 25 Oct). Personally I think it'd be a
- * valuable addition.
- * =20
- * Not hard to do either: for stores, examine Ist_Store, and
- * use typeOfIRExpr(bb->tyenv, st->Ist.Store.data) to get the
- * store type. For loads and ALU ops, you only need to look
- * at Ist_Tmp cases where the Ist.Tmp.data is either Iex_Load
- * or Iex_{Unop,Binop}. All statements you will ever
- * encounter will satisfy isFlatIRStmt which essentially
- * constrains them to being flat SSA-style.
- */
case Ist_Store:
// Add a call to trace_store() if --trace-mem=3Dyes.
- if (lk_clo_trace_mem) {
+ if (clo_trace_mem) {
addr_expr =3D st->Ist.Store.addr;
size_expr =3D mkIRExpr_HWord(=20
sizeofIRType(
@@ -402,7 +419,7 @@
argv );
addStmtToIRBB( bb, IRStmt_Dirty(di) );
}
- if (lk_clo_detailed_counts) {
+ if (clo_detailed_counts) {
type =3D typeOfIRExpr(bb->tyenv, st->Ist.Store.data);
tl_assert(type !=3D Ity_INVALID);
instrument_detail( bb, OpStore, type );
@@ -412,7 +429,7 @@
=20
case Ist_Tmp:
// Add a call to trace_load() if --trace-mem=3Dyes.
- if (lk_clo_trace_mem) {
+ if (clo_trace_mem) {
IRExpr* data =3D st->Ist.Tmp.data;
if (data->tag =3D=3D Iex_Load) {
addr_expr =3D data->Iex.Load.addr;
@@ -425,7 +442,7 @@
addStmtToIRBB( bb, IRStmt_Dirty(di) );
}
}
- if (lk_clo_detailed_counts) {
+ if (clo_detailed_counts) {
IRExpr* expr =3D st->Ist.Tmp.data;
type =3D typeOfIRExpr(bb->tyenv, expr);
tl_assert(type !=3D Ity_INVALID);
@@ -452,11 +469,13 @@
}
}
=20
- /* Count this basic block. */
- di =3D unsafeIRDirty_0_N( 0, "add_one_BB_completed",=20
- VG_(fnptr_to_fnentry)( &add_one_BB_complet=
ed ),=20
- mkIRExprVec_0() );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ if (clo_basic_counts) {
+ /* Count this basic block. */
+ di =3D unsafeIRDirty_0_N( 0, "add_one_BB_completed",=20
+ VG_(fnptr_to_fnentry)( &add_one_BB_comp=
leted ),
+ mkIRExprVec_0() );
+ addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ }
=20
return bb;
}
@@ -467,45 +486,50 @@
const int percentify_size =3D sizeof(percentify_buf);
const int percentify_decs =3D 0;
=20
- tl_assert(lk_clo_fnname);
- tl_assert(lk_clo_fnname[0]);
- VG_(message)(Vg_UserMsg,
- "Counted %,llu calls to %s()", n_func_calls, lk_clo_fnname);
+ tl_assert(clo_fnname);
+ tl_assert(clo_fnname[0]);
=20
- VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "Jccs:");
- VG_(message)(Vg_UserMsg, " total: %,llu", n_Jccs);
- VG_(percentify)((n_Jccs - n_Jccs_untaken), (n_Jccs ? n_Jccs : 1),
- percentify_decs, percentify_size, percentify_buf);
- VG_(message)(Vg_UserMsg, " taken: %,llu (%s)",=20
- (n_Jccs - n_Jccs_untaken), percentify_buf);
- =20
- VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "Executed:");
- VG_(message)(Vg_UserMsg, " BBs entered: %,llu", n_BBs_entered);
- VG_(message)(Vg_UserMsg, " BBs completed: %,llu", n_BBs_completed);
- VG_(message)(Vg_UserMsg, " guest instrs: %,llu", n_guest_instrs);
- VG_(message)(Vg_UserMsg, " IRStmts: %,llu", n_IRStmts);
- =20
- VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "Ratios:");
- tl_assert(n_BBs_entered); // Paranoia time.
- VG_(message)(Vg_UserMsg, " guest instrs : BB entered =3D %3u : 10",
- 10 * n_guest_instrs / n_BBs_entered);
- VG_(message)(Vg_UserMsg, " IRStmts : BB entered =3D %3u : 10",
- 10 * n_IRStmts / n_BBs_entered);
- tl_assert(n_guest_instrs); // Paranoia time.
- VG_(message)(Vg_UserMsg, " IRStmts : guest instr =3D %3u : 10",
- 10 * n_IRStmts / n_guest_instrs);
+ if (clo_basic_counts) {
+ VG_(message)(Vg_UserMsg,
+ "Counted %,llu calls to %s()", n_func_calls, clo_fnname);
=20
- if (lk_clo_detailed_counts) {
VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg, "Jccs:");
+ VG_(message)(Vg_UserMsg, " total: %,llu", n_Jccs);
+ VG_(percentify)((n_Jccs - n_Jccs_untaken), (n_Jccs ? n_Jccs : 1),
+ percentify_decs, percentify_size, percentify_buf);
+ VG_(message)(Vg_UserMsg, " taken: %,llu (%s)",=20
+ (n_Jccs - n_Jccs_untaken), percentify_buf);
+ =20
+ VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg, "Executed:");
+ VG_(message)(Vg_UserMsg, " BBs entered: %,llu", n_BBs_entered);
+ VG_(message)(Vg_UserMsg, " BBs completed: %,llu", n_BBs_completed=
);
+ VG_(message)(Vg_UserMsg, " guest instrs: %,llu", n_guest_instrs)=
;
+ VG_(message)(Vg_UserMsg, " IRStmts: %,llu", n_IRStmts);
+ =20
+ VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg, "Ratios:");
+ tl_assert(n_BBs_entered); // Paranoia time.
+ VG_(message)(Vg_UserMsg, " guest instrs : BB entered =3D %3u : 1=
0",
+ 10 * n_guest_instrs / n_BBs_entered);
+ VG_(message)(Vg_UserMsg, " IRStmts : BB entered =3D %3u : 1=
0",
+ 10 * n_IRStmts / n_BBs_entered);
+ tl_assert(n_guest_instrs); // Paranoia time.
+ VG_(message)(Vg_UserMsg, " IRStmts : guest instr =3D %3u : 1=
0",
+ 10 * n_IRStmts / n_guest_instrs);
+ }
+
+ if (clo_detailed_counts) {
+ VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg, "IR-level counts by type:");
print_details();
}
=20
- VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "Exit code: %d", exitcode);
+ if (clo_basic_counts) {
+ VG_(message)(Vg_UserMsg, "");
+ VG_(message)(Vg_UserMsg, "Exit code: %d", exitcode);
+ }
}
=20
static void lk_pre_clo_init(void)
|
|
From: <js...@ac...> - 2006-04-07 11:43:49
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-04-07 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 == 203 tests, 11 stderr failures, 5 stdout failures, 0 posttest 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/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: <js...@ac...> - 2006-04-07 03:04:17
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-04-07 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 == 234 tests, 6 stderr failures, 0 stdout failures, 0 posttest 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-04-07 02:55:55
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-04-07 04:40:01 CEST 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 == 208 tests, 7 stderr failures, 4 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/wrap4 (stdout) memcheck/tests/wrap4 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (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 == 208 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Apr 7 04:47:56 2006 --- new.short Fri Apr 7 04:55:49 2006 *************** *** 8,10 **** ! == 208 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 208 tests, 7 stderr failures, 4 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 14,15 **** --- 14,17 ---- memcheck/tests/pointer-trace (stderr) + memcheck/tests/wrap4 (stdout) + memcheck/tests/wrap4 (stderr) none/tests/faultstatus (stderr) |
|
From: Tom H. <to...@co...> - 2006-04-07 02:44:59
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-04-07 03:30:06 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 == 236 tests, 8 stderr failures, 1 stdout failure, 0 posttest failures == 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) |
|
From: Tom H. <th...@cy...> - 2006-04-07 02:33:04
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-04-07 03:15: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 == 235 tests, 22 stderr failures, 2 stdout failures, 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-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/sh-mem-random (stdout) memcheck/tests/sh-mem-random (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-04-07 02:25:07
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-04-07 03:10: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 == 258 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == 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) |
|
From: Tom H. <th...@cy...> - 2006-04-07 02:24:31
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-04-07 03:05:10 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 == 258 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == 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-04-07 02:16:00
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-04-07 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 == 258 tests, 7 stderr failures, 1 stdout failure, 0 posttest failures == 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) |