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
(3) |
|
2
(8) |
3
(19) |
4
(24) |
5
(23) |
6
(16) |
7
(33) |
8
(5) |
|
9
(4) |
10
(23) |
11
(22) |
12
(40) |
13
(30) |
14
(31) |
15
(17) |
|
16
(18) |
17
(20) |
18
(41) |
19
(36) |
20
(25) |
21
(8) |
22
(9) |
|
23
(17) |
24
(12) |
25
(15) |
26
(15) |
27
(16) |
28
(22) |
29
(6) |
|
30
(7) |
31
(10) |
|
|
|
|
|
|
From: <sv...@va...> - 2009-08-22 22:51:02
|
Author: njn
Date: 2009-08-22 23:50:40 +0100 (Sat, 22 Aug 2009)
New Revision: 10858
Log:
Modify some messaging infrastructure. Start some conversions to the new
infrastructure.
Fix an option printing problem in Cachegrind, and (ironically) a bad call to
VG_(printf_xml_no_f_c) in m_main.c.
Note that there's some temporary behaviour in here that will change
eventually.
Modified:
branches/MSG2/cachegrind/cg_main.c
branches/MSG2/coregrind/m_libcprint.c
branches/MSG2/coregrind/m_main.c
branches/MSG2/coregrind/m_options.c
branches/MSG2/coregrind/m_signals.c
branches/MSG2/coregrind/m_ume/main.c
branches/MSG2/include/pub_tool_libcprint.h
branches/MSG2/tests/filter_stderr_basic
Modified: branches/MSG2/cachegrind/cg_main.c
===================================================================
--- branches/MSG2/cachegrind/cg_main.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/cachegrind/cg_main.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -1655,13 +1655,13 @@
/*--- Command line processing ---*/
/*--------------------------------------------------------------------*/
-static void parse_cache_opt ( cache_t* cache, Char* opt )
+static void parse_cache_opt ( cache_t* cache, Char* opt, Char* optval )
{
Long i1, i2, i3;
Char* endptr;
// Option argument looks like "65536,2,64". Extract them.
- i1 = VG_(strtoll10)(opt, &endptr); if (*endptr != ',') goto bad;
+ i1 = VG_(strtoll10)(optval, &endptr); if (*endptr != ',') goto bad;
i2 = VG_(strtoll10)(endptr+1, &endptr); if (*endptr != ',') goto bad;
i3 = VG_(strtoll10)(endptr+1, &endptr); if (*endptr != '\0') goto bad;
@@ -1678,8 +1678,6 @@
overflow:
VG_(umsg)("one of the cache parameters was too large and overflowed\n");
bad:
- // XXX: this omits the "--I1/D1/L2=" part from the message, but that's
- // not a big deal.
VG_(err_bad_option)(opt);
}
@@ -1689,11 +1687,11 @@
// 5 is length of "--I1="
if VG_STR_CLO(arg, "--I1", tmp_str)
- parse_cache_opt(&clo_I1_cache, tmp_str);
+ parse_cache_opt(&clo_I1_cache, arg, tmp_str);
else if VG_STR_CLO(arg, "--D1", tmp_str)
- parse_cache_opt(&clo_D1_cache, tmp_str);
+ parse_cache_opt(&clo_D1_cache, arg, tmp_str);
else if VG_STR_CLO(arg, "--L2", tmp_str)
- parse_cache_opt(&clo_L2_cache, tmp_str);
+ parse_cache_opt(&clo_L2_cache, arg, tmp_str);
else if VG_STR_CLO( arg, "--cachegrind-out-file", clo_cachegrind_out_file) {}
else if VG_BOOL_CLO(arg, "--cache-sim", clo_cache_sim) {}
Modified: branches/MSG2/coregrind/m_libcprint.c
===================================================================
--- branches/MSG2/coregrind/m_libcprint.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/coregrind/m_libcprint.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -160,7 +160,6 @@
return ret;
}
-/* An exact clone of VG_(printf_xml), unfortunately. */
UInt VG_(printf_xml_no_f_c) ( const HChar *format, ... )
{
UInt ret;
@@ -402,14 +401,6 @@
HChar ch;
Int i, depth;
- switch (b->kind) {
- case Vg_UserMsg: ch = '='; break;
- case Vg_DebugMsg: ch = '-'; break;
- case Vg_DebugExtraMsg: ch = '+'; break;
- case Vg_ClientMsg: ch = '*'; break;
- default: ch = '?'; break;
- }
-
// Print one '>' in front of the messages for each level of
// self-hosting being performed.
depth = RUNNING_ON_VALGRIND;
@@ -419,26 +410,50 @@
b->buf[b->buf_used++] = '>';
}
- b->buf[b->buf_used++] = ch;
- b->buf[b->buf_used++] = ch;
+ if (Vg_StartFailMsg == b->kind) {
+ // "valgrind: " prefix.
+ b->buf[b->buf_used++] = 'v';
+ b->buf[b->buf_used++] = 'a';
+ b->buf[b->buf_used++] = 'l';
+ b->buf[b->buf_used++] = 'g';
+ b->buf[b->buf_used++] = 'r';
+ b->buf[b->buf_used++] = 'i';
+ b->buf[b->buf_used++] = 'n';
+ b->buf[b->buf_used++] = 'd';
+ b->buf[b->buf_used++] = ':';
+ b->buf[b->buf_used++] = ' ';
- if (VG_(clo_time_stamp)) {
- VG_(memset)(tmp, 0, sizeof(tmp));
- VG_(elapsed_wallclock_time)(tmp);
+ } else {
+ // "==pid=="-style prefix.
+ switch (b->kind) {
+ case Vg_UserMsg: ch = '='; break;
+ case Vg_ValgrindMsg: ch = '-'; break;
+ case Vg_DebugMsg: ch = '+'; break; // MMM: use debugLog
+ case Vg_ClientMsg: ch = '*'; break;
+ default: VG_(core_panic)("add_to__vmessage_buf");
+ }
+
+ b->buf[b->buf_used++] = ch;
+ b->buf[b->buf_used++] = ch;
+
+ if (VG_(clo_time_stamp)) {
+ VG_(memset)(tmp, 0, sizeof(tmp));
+ VG_(elapsed_wallclock_time)(tmp);
+ tmp[sizeof(tmp)-1] = 0;
+ for (i = 0; tmp[i]; i++)
+ b->buf[b->buf_used++] = tmp[i];
+ }
+
+ VG_(sprintf)(tmp, "%d", b->my_pid);
tmp[sizeof(tmp)-1] = 0;
for (i = 0; tmp[i]; i++)
b->buf[b->buf_used++] = tmp[i];
+
+ b->buf[b->buf_used++] = ch;
+ b->buf[b->buf_used++] = ch;
+ b->buf[b->buf_used++] = ' ';
}
- VG_(sprintf)(tmp, "%d", b->my_pid);
- tmp[sizeof(tmp)-1] = 0;
- for (i = 0; tmp[i]; i++)
- b->buf[b->buf_used++] = tmp[i];
-
- b->buf[b->buf_used++] = ch;
- b->buf[b->buf_used++] = ch;
- b->buf[b->buf_used++] = ' ';
-
/* We can't possibly have stuffed 96 chars in merely as a result
of making the preamble (can we?) */
vg_assert(b->buf_used < sizeof(b->buf)-32);
@@ -455,7 +470,7 @@
b->atLeft = c == '\n';
}
-
+// MMM: make private
UInt VG_(vmessage) ( VgMsgKind kind, const HChar* format, va_list vargs )
{
UInt ret;
@@ -491,6 +506,7 @@
}
/* Send a simple single-part XML message. */
+// MMM: make private?
UInt VG_(message_no_f_c) ( VgMsgKind kind, const HChar* format, ... )
{
UInt count;
@@ -502,6 +518,7 @@
}
/* Send a simple single-part message. */
+// MMM: make private
UInt VG_(message) ( VgMsgKind kind, const HChar* format, ... )
{
UInt count;
@@ -513,6 +530,19 @@
}
/* VG_(message) variants with hardwired first argument. */
+
+UInt VG_(msgf) ( const HChar* format, ... )
+{
+ UInt count;
+ va_list vargs;
+ va_start(vargs,format);
+ count = VG_(vmessage) ( Vg_StartFailMsg, format, vargs );
+ va_end(vargs);
+ return count;
+}
+
+// MMM: get rid of eventually, then rename VG_(msgu) as VG_(umsg). Likewise
+// for dmsg.
UInt VG_(umsg) ( const HChar* format, ... )
{
UInt count;
@@ -523,6 +553,26 @@
return count;
}
+UInt VG_(msgu) ( const HChar* format, ... )
+{
+ UInt count;
+ va_list vargs;
+ va_start(vargs,format);
+ count = VG_(vmessage) ( Vg_UserMsg, format, vargs );
+ va_end(vargs);
+ return count;
+}
+
+UInt VG_(msgv) ( const HChar* format, ... )
+{
+ UInt count;
+ va_list vargs;
+ va_start(vargs,format);
+ count = VG_(vmessage) ( Vg_ValgrindMsg, format, vargs );
+ va_end(vargs);
+ return count;
+}
+
UInt VG_(dmsg) ( const HChar* format, ... )
{
UInt count;
@@ -533,12 +583,12 @@
return count;
}
-UInt VG_(emsg) ( const HChar* format, ... )
+UInt VG_(msgd) ( const HChar* format, ... )
{
UInt count;
va_list vargs;
va_start(vargs,format);
- count = VG_(vmessage) ( Vg_DebugExtraMsg, format, vargs );
+ count = VG_(vmessage) ( Vg_DebugMsg, format, vargs );
va_end(vargs);
return count;
}
Modified: branches/MSG2/coregrind/m_main.c
===================================================================
--- branches/MSG2/coregrind/m_main.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/coregrind/m_main.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -1088,8 +1088,8 @@
VG_(printf_xml_no_f_c)(" <exe>%t</exe>\n",
VG_(name_of_launcher));
else
- VG_(printf_xml_no_f_c)(Vg_UserMsg, " <exe>%t</exe>\n",
- "(launcher name unknown)");
+ VG_(printf_xml_no_f_c)(" <exe>%t</exe>\n",
+ "(launcher name unknown)");
for (i = 0; i < VG_(sizeXA)( VG_(args_for_valgrind) ); i++) {
VG_(printf_xml_no_f_c)(
" <arg>%t</arg>\n",
Modified: branches/MSG2/coregrind/m_options.c
===================================================================
--- branches/MSG2/coregrind/m_options.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/coregrind/m_options.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -108,8 +108,8 @@
void VG_(err_bad_option) ( Char* opt )
{
revert_to_stderr();
- VG_(printf)("valgrind: Bad option '%s'; aborting.\n", opt);
- VG_(printf)("valgrind: Use --help for more information.\n");
+ VG_(msgf)("Bad option '%s'; aborting.\n", opt);
+ VG_(msgf)("Use --help for more information.\n");
VG_(exit)(1);
}
@@ -117,8 +117,8 @@
void VG_(err_missing_prog) ( void )
{
revert_to_stderr();
- VG_(printf)("valgrind: no program specified\n");
- VG_(printf)("valgrind: Use --help for more information.\n");
+ VG_(msgf)("no program specified\n");
+ VG_(msgf)("Use --help for more information.\n");
VG_(exit)(1);
}
@@ -126,8 +126,8 @@
void VG_(err_config_error) ( Char* msg )
{
revert_to_stderr();
- VG_(printf)("valgrind: Startup or configuration error:\n %s\n", msg);
- VG_(printf)("valgrind: Unable to start up properly. Giving up.\n");
+ VG_(msgf)("Startup or configuration error:\n %s\n", msg);
+ VG_(msgf)("Unable to start up properly. Giving up.\n");
VG_(exit)(1);
}
@@ -144,7 +144,7 @@
if (VG_STREQ(format, "")) {
// Empty name, bad.
- VG_(umsg)("%s: filename is empty", option_name);
+ VG_(msgf)("%s: filename is empty\n", option_name);
goto bad;
}
@@ -153,11 +153,13 @@
// that we don't allow a legitimate filename beginning with '~' but that
// seems very unlikely.
if (format[0] == '~') {
- VG_(umsg)("%s: filename begins with '~'\n", option_name);
- VG_(umsg)("You probably expected the shell to expand the '~', but it\n");
- VG_(umsg)("didn't. The rules for '~'-expansion "
- "vary from shell to shell.\n");
- VG_(umsg)("You might have more luck using $HOME instead.\n");
+ VG_(msgf)(
+ "%s: filename begins with '~'\n"
+ "You probably expected the shell to expand the '~',\n"
+ "but it didn't. The rules for '~'-expansion vary\n"
+ "from shell to shell. Try using $HOME instead.\n",
+ option_name
+ );
goto bad;
}
@@ -211,8 +213,7 @@
qualname = &format[i];
while (True) {
if (0 == format[i]) {
- VG_(message)(Vg_UserMsg, "%s: malformed %%q specifier\n",
- option_name);
+ VG_(msgf)("%s: malformed %%q specifier\n", option_name);
goto bad;
} else if ('}' == format[i]) {
// Temporarily replace the '}' with NUL to extract var
@@ -220,9 +221,8 @@
format[i] = 0;
qual = VG_(getenv)(qualname);
if (NULL == qual) {
- VG_(message)(Vg_UserMsg,
- "%s: environment variable %s is not set\n",
- option_name, qualname);
+ VG_(msgf)("%s: environment variable %s is not set\n",
+ option_name, qualname);
format[i] = '}'; // Put the '}' back.
goto bad;
}
@@ -235,15 +235,13 @@
ENSURE_THIS_MUCH_SPACE(VG_(strlen)(qual));
j += VG_(sprintf)(&out[j], "%s", qual);
} else {
- VG_(message)(Vg_UserMsg,
- "%s: expected '{' after '%%q'\n", option_name);
+ VG_(msgf)("%s: expected '{' after '%%q'\n", option_name);
goto bad;
}
}
else {
// Something else, abort.
- VG_(message)(Vg_UserMsg,
- "%s: expected 'p' or 'q' or '%%' after '%%'\n", option_name);
+ VG_(msgf)("%s: expected 'p' or 'q' or '%%' after '%%'\n", option_name);
goto bad;
}
}
Modified: branches/MSG2/coregrind/m_signals.c
===================================================================
--- branches/MSG2/coregrind/m_signals.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/coregrind/m_signals.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -935,7 +935,7 @@
m_SP = VG_(get_SP)(tid);
if (VG_(clo_trace_signals))
- VG_(emsg)("sys_sigaltstack: tid %d, "
+ VG_(dmsg)("sys_sigaltstack: tid %d, "
"ss %p{%p,sz=%llu,flags=0x%llx}, oss %p (current SP %p)\n",
tid, (void*)ss,
ss ? ss->ss_sp : 0,
@@ -980,7 +980,7 @@
vki_sigaction_fromK_t* old_act )
{
if (VG_(clo_trace_signals))
- VG_(emsg)("sys_sigaction: sigNo %d, "
+ VG_(dmsg)("sys_sigaction: sigNo %d, "
"new %#lx, old %#lx, new flags 0x%llx\n",
signo, (UWord)new_act, (UWord)old_act,
(ULong)(new_act ? new_act->sa_flags : 0));
@@ -1129,7 +1129,7 @@
vki_sigset_t* oldset )
{
if (VG_(clo_trace_signals))
- VG_(emsg)("do_setmask: tid = %d how = %d (%s), newset = %p (%s)\n",
+ VG_(dmsg)("do_setmask: tid = %d how = %d (%s), newset = %p (%s)\n",
tid, how,
how==VKI_SIG_BLOCK ? "SIG_BLOCK" : (
how==VKI_SIG_UNBLOCK ? "SIG_UNBLOCK" : (
@@ -1141,7 +1141,7 @@
if (oldset) {
*oldset = VG_(threads)[tid].sig_mask;
if (VG_(clo_trace_signals))
- VG_(emsg)("\toldset=%p %s\n", oldset, format_sigset(oldset));
+ VG_(dmsg)("\toldset=%p %s\n", oldset, format_sigset(oldset));
}
if (newset) {
do_sigprocmask_bitops (how, &VG_(threads)[tid].sig_mask, newset );
Modified: branches/MSG2/coregrind/m_ume/main.c
===================================================================
--- branches/MSG2/coregrind/m_ume/main.c 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/coregrind/m_ume/main.c 2009-08-22 22:50:40 UTC (rev 10858)
@@ -243,7 +243,7 @@
// Was it not executable?
} else if (0 != VG_(check_executable)(NULL, exe_name,
False/*allow_setuid*/)) {
- VG_(printf)("valgrind: %s: %s\n", exe_name, VG_(strerror)(ret));
+ VG_(msgf)("%s: %s\n", exe_name, VG_(strerror)(ret));
// Did it start with "#!"? If so, it must have been a bad interpreter.
} else if (is_hash_bang_file(exe_name)) {
Modified: branches/MSG2/include/pub_tool_libcprint.h
===================================================================
--- branches/MSG2/include/pub_tool_libcprint.h 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/include/pub_tool_libcprint.h 2009-08-22 22:50:40 UTC (rev 10858)
@@ -75,6 +75,8 @@
extern UInt VG_(vprintf_xml) ( const HChar *format, va_list vargs )
PRINTF_CHECK(1, 0);
+// Just like VG_(printf_xml) but without the PRINTF_CHECK, so it can be used
+// with our non-standard %t format specifier.
extern UInt VG_(printf_xml_no_f_c) ( const HChar *format, ... );
// Percentify n/m with d decimal places. Includes the '%' symbol at the end.
@@ -92,11 +94,15 @@
/* Print a message prefixed by "??<pid>?? "; '?' depends on the VgMsgKind.
Should be used for all user output. */
+// MMM: remove all the Vg/Vg_ prefixes here. Do it after VG_(message) has
+// been made private to minimise changes
typedef
- enum { Vg_UserMsg, /* '?' == '=' */
- Vg_DebugMsg, /* '?' == '-' */
- Vg_DebugExtraMsg, /* '?' == '+' */
- Vg_ClientMsg /* '?' == '*' */
+ enum { // Prefix
+ Vg_StartFailMsg, // "valgrind:"
+ Vg_UserMsg, // "==pid=="
+ Vg_ValgrindMsg, // "--pid--"
+ Vg_DebugMsg, // "++pid++"
+ Vg_ClientMsg // "**pid**"
}
VgMsgKind;
@@ -108,18 +114,26 @@
/* Send a single-part message. The format specification may contain
any ISO C format specifier. The gcc compiler will verify
consistency of the format string and the argument list. */
+// MMM: make private?
extern UInt VG_(message)( VgMsgKind kind, const HChar* format, ... )
PRINTF_CHECK(2, 3);
+// MMM: remove?
extern UInt VG_(vmessage)( VgMsgKind kind, const HChar* format, va_list vargs )
PRINTF_CHECK(2, 0);
// Short-cuts for VG_(message)().
-extern UInt VG_(umsg)( const HChar* format, ... ) PRINTF_CHECK(1, 2);
-extern UInt VG_(dmsg)( const HChar* format, ... ) PRINTF_CHECK(1, 2);
-extern UInt VG_(emsg)( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+// MMM: rename these as vmsg/fmsg/etc eventually
+extern UInt VG_(msgf) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+extern UInt VG_(msgu) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+extern UInt VG_(msgv) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+extern UInt VG_(msgd) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+// MMM: get rid of these to begin with
+extern UInt VG_(umsg) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+extern UInt VG_(dmsg) ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
/* Flush any output cached by previous calls to VG_(message) et al. */
+// MMM: remove?
extern void VG_(message_flush) ( void );
#endif // __PUB_TOOL_LIBCPRINT_H
Modified: branches/MSG2/tests/filter_stderr_basic
===================================================================
--- branches/MSG2/tests/filter_stderr_basic 2009-08-22 05:10:48 UTC (rev 10857)
+++ branches/MSG2/tests/filter_stderr_basic 2009-08-22 22:50:40 UTC (rev 10858)
@@ -13,6 +13,7 @@
perl -p -e 's/(==|--|\+\+|\*\*)[0-9]{1,7}\1 //' |
# Remove any --pid:0: strings (debuglog level zero output)
+# MMM: change/remove
sed "/^--[0-9]\{1,7\}:0:*/d" |
# Remove "Command: line". (If wrapping occurs, it won't remove the
|
|
From: Nicholas N. <n.n...@gm...> - 2009-08-22 22:24:31
|
On Sat, Aug 22, 2009 at 8:33 PM, Bart Van Assche<bar...@gm...> wrote: > > I agree that most if not all VG_(printf)() calls should be replaced by > VG_(message)() calls, but I'm not sure that it is a good idea to > rename VG_(printf)() into something else. The motivation is this: if it should only be used in rare cases, then give it a non-standard name so that people don't use it by default without thinking. Nick |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-22 22:20:33
|
On Sat, Aug 22, 2009 at 5:49 PM, Bart Van Assche<bar...@gm...> wrote: > > It would be great if someone familiar with the stabs format could have > a look at the bug report https://bugs.kde.org/show_bug.cgi?id=162482. > Reading the debug info of > memcheck/tests/deep_templates causes a crash in Valgrind on certain > PPC distro's. I'm not sure however whether this is an issue with the > Valgrind stabs reader or that the stabs debug info of the test program > is invalid. The problem with stabs is that there isn't a clear standard. There is a document, from Red Hat I think, floating around which is a quasi-standard, and I think Valgrind's reader is based on this. But some compilers just do different things, eg. stabs on Darwin is close to unusable. Given that stabs is increasingly rare, I think there are more useful things that can be worked on. Especially if it has only so far manifested as a single regtest failure. Nick |
|
From: Bart V. A. <bar...@gm...> - 2009-08-22 10:33:59
|
On Sat, Aug 22, 2009 at 2:49 AM, Nicholas Nethercote <n.n...@gm...> wrote: > I've been thinking about Valgrind's output, in relation to these two bugs: > > http://bugs.kde.org/show_bug.cgi?id=203255 > http://bugs.kde.org/show_bug.cgi?id=204713 > > Here's a summary of a proposal. > [ ... ] I agree that most if not all VG_(printf)() calls should be replaced by VG_(message)() calls, but I'm not sure that it is a good idea to rename VG_(printf)() into something else. Bart. |
|
From: Rémi D. <iv...@di...> - 2009-08-22 10:18:35
|
Hello, I found a potential memory leak in cachegrind/cg_merge.c The following patch fix this issue. Best regards -- Rémi Duraffort | ivoire |
|
From: Bart V. A. <bar...@gm...> - 2009-08-22 07:49:17
|
Hello, It would be great if someone familiar with the stabs format could have a look at the bug report https://bugs.kde.org/show_bug.cgi?id=162482. Reading the debug info of memcheck/tests/deep_templates causes a crash in Valgrind on certain PPC distro's. I'm not sure however whether this is an issue with the Valgrind stabs reader or that the stabs debug info of the test program is invalid. Bart. |
|
From: Bart V. A. <bar...@gm...> - 2009-08-22 07:01:07
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-08-22 02:00:25 EDT Ended at 2009-08-22 03:00:41 EDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 446 tests, 43 stderr failures, 8 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) |
|
From: <sv...@va...> - 2009-08-22 05:11:04
|
Author: njn Date: 2009-08-22 06:10:48 +0100 (Sat, 22 Aug 2009) New Revision: 10857 Log: New branch for experimenting on messaging changes. Called "MSG2" as a (shorter-named) follow-up to MESSAGING_TIDYUP. Added: branches/MSG2/ Copied: branches/MSG2 (from rev 10856, trunk) |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-22 00:49:58
|
Hi, I've been thinking about Valgrind's output, in relation to these two bugs: http://bugs.kde.org/show_bug.cgi?id=203255 http://bugs.kde.org/show_bug.cgi?id=204713 Here's a summary of a proposal. -------- Aim is to make Valgrind output more consistent and understandable for the user. We'll end up with various categories of messages: - Prefix-less messages: very few - Usage messages (-h) - --gen-suppressions=yes output (for easy cut+paste) - anything else that needs to be cut+pasted - "==pid==" messages: stuff that's useful to the user, about their program, or that they requested - preamble + postamble - tool error messages - '-q' turns some of these off (eg. preamble/postamble) - '-v' turns some of these on (eg. postamble suppression summary) - "--pid--" messages: diagnostics about Valgrind's execution - always shown, even with -q - aborts: bad options, startup problems, unknown instructions - warnings: emulation warnings, unknown syscalls - "++pid++" messages: debugging messages, only useful to developers - shown with -d or -d -d - --stats=yes - --trace-XYZ=yes and similar ones - all via debuglog (so hard-wired to stderr) - "**pid**" messages: user-requested messages - VALGRIND_PRINTF - VALGRIND_PRINTF_BACKTRACE -------- I haven't thought much about XML yet, but hopefully the stuff we produce via XML matches the "==pid==" category pretty closely, and "--pid--" and "++pid++" messages won't end up in XML. Any thoughts? I think it'll help users, because if they don't understand a message at least they'll know what it pertains to (eg. their program vs. Valgrind itself). And debugging info is cleanly segregated. And currently a lot of messages don't have a prefix, so if the prefix is added at least it's clear that it comes from Valgrind. I think I'll start a branch for this. N |