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
(2) |
2
(4) |
3
(1) |
4
(7) |
5
|
|
6
|
7
(4) |
8
|
9
(3) |
10
(6) |
11
(13) |
12
(6) |
|
13
(1) |
14
|
15
(1) |
16
|
17
(4) |
18
(3) |
19
(5) |
|
20
(5) |
21
(5) |
22
(5) |
23
(6) |
24
|
25
(1) |
26
(1) |
|
27
(1) |
28
(4) |
29
(5) |
30
|
|
|
|
|
From: <sv...@va...> - 2016-11-12 22:55:42
|
Author: philippe
Date: Sat Nov 12 22:55:35 2016
New Revision: 16136
Log:
Fix sym name cache: handles the difference between text and data, + match in symbol
* sym name cache to cache the 'isText' characteristic of the cached sym_name
* implement the match anywhere also in the cache
Not handling matchAnywhere has bad performance effect on callgrind, as almost many
IPs were considered as a fn entry, while they were not.
* use the same convention to name the findText argument
Modified:
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
==============================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c (original)
+++ trunk/coregrind/m_debuginfo/debuginfo.c Sat Nov 12 22:55:35 2016
@@ -1646,7 +1646,6 @@
*/
static void search_all_symtabs ( Addr ptr, /*OUT*/DebugInfo** pdi,
/*OUT*/Word* symno,
- Bool match_anywhere_in_sym,
Bool findText )
{
Word sno;
@@ -1690,8 +1689,7 @@
if (!inRange) continue;
- sno = ML_(search_one_symtab) (
- di, ptr, match_anywhere_in_sym, findText );
+ sno = ML_(search_one_symtab) ( di, ptr, findText );
if (sno == -1) goto not_found;
*symno = sno;
*pdi = di;
@@ -1733,7 +1731,12 @@
#define N_SYM_NAME_CACHE 509
typedef
- struct { Addr sym_avma; const HChar* sym_name; PtrdiffT offset; }
+ struct {
+ Addr sym_avma;
+ const HChar* sym_name;
+ PtrdiffT offset : (sizeof(PtrdiffT)*8)-1;
+ Bool isText : 1;
+ }
Sym_Name_CacheEnt;
/* Sym_Name_CacheEnt associates a queried address to the sym name found.
By nature, if a sym name was found, it means the searched address
@@ -1783,12 +1786,13 @@
UWord hash = a % N_SYM_NAME_CACHE;
Sym_Name_CacheEnt* se = &sym_name_cache[hash];
- if (UNLIKELY(se->sym_avma != a)) {
+ if (UNLIKELY(se->sym_avma != a || se->isText != findText)) {
DebugInfo* di;
Word sno;
- search_all_symtabs ( a, &di, &sno, match_anywhere_in_sym, findText );
+ search_all_symtabs ( a, &di, &sno, findText );
se->sym_avma = a;
+ se->isText = findText;
if (di == NULL || a == 0)
se->sym_name = no_sym_name;
else {
@@ -1798,7 +1802,8 @@
}
}
- if (se->sym_name == no_sym_name) {
+ if (se->sym_name == no_sym_name
+ || (!match_anywhere_in_sym && se->offset != 0)) {
*buf = "";
return False;
}
@@ -1834,7 +1839,7 @@
VG_(strcpy)(bufwo, *buf);
VG_(sprintf)(bufwo + len, "%c%ld",
se->offset < 0 ? '-' : '+',
- se->offset < 0 ? -se->offset : se->offset);
+ (PtrdiffT) (se->offset < 0 ? -se->offset : se->offset));
*buf = bufwo;
}
@@ -1851,7 +1856,6 @@
Word sno;
search_all_symtabs ( guest_code_addr,
&si, &sno,
- True/*match_anywhere_in_fun*/,
True/*consider text symbols only*/ );
if (si == NULL)
return 0;
@@ -1873,7 +1877,7 @@
a, buf,
/*match_anywhere_in_fun*/True,
/*show offset?*/False,
- /*text syms only*/True,
+ /*text sym*/True,
/*offsetP*/NULL );
}
@@ -1888,7 +1892,7 @@
a, buf,
/*match_anywhere_in_fun*/True,
/*show offset?*/True,
- /*text syms only*/True,
+ /*text sym*/True,
/*offsetP*/NULL );
}
@@ -1907,7 +1911,7 @@
a, &tmp,
/*match_anywhere_in_fun*/False,
/*show offset?*/False,
- /*text syms only*/True,
+ /*text sym*/True,
/*offsetP*/NULL );
if (res)
*buf = tmp;
@@ -1926,7 +1930,7 @@
a, buf,
/*match_anywhere_in_fun*/True,
/*show offset?*/False,
- /*text syms only*/True,
+ /*text sym*/True,
/*offsetP*/NULL );
}
@@ -1945,7 +1949,7 @@
a, buf,
/*match_anywhere_in_fun*/True,
/*show offset?*/False,
- /*text syms only*/True,
+ /*text sym*/True,
/*offsetP*/NULL );
} else {
const DiInlLoc *next_inl = iipc && iipc->next_inltab >= 0
@@ -1970,7 +1974,7 @@
a, &fnname,
/*match_anywhere_in_sym*/True,
/*show offset?*/False,
- /*text syms only*/True,
+ /*text sym*/True,
offset );
}
@@ -2027,7 +2031,7 @@
data_addr, dname,
/*match_anywhere_in_sym*/True,
/*show offset?*/False,
- /*data syms only please*/False,
+ /*text sym*/False,
offset );
}
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
==============================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h (original)
+++ trunk/coregrind/m_debuginfo/priv_storage.h Sat Nov 12 22:55:35 2016
@@ -1108,7 +1108,6 @@
/* Find a symbol-table index containing the specified pointer, or -1
if not found. Binary search. */
extern Word ML_(search_one_symtab) ( const DebugInfo* di, Addr ptr,
- Bool match_anywhere_in_sym,
Bool findText );
/* Find a location-table index containing the specified pointer, or -1
Modified: trunk/coregrind/m_debuginfo/storage.c
==============================================================================
--- trunk/coregrind/m_debuginfo/storage.c (original)
+++ trunk/coregrind/m_debuginfo/storage.c Sat Nov 12 22:55:35 2016
@@ -2360,11 +2360,10 @@
if not found. Binary search. */
Word ML_(search_one_symtab) ( const DebugInfo* di, Addr ptr,
- Bool match_anywhere_in_sym,
Bool findText )
{
Addr a_mid_lo, a_mid_hi;
- Word mid, size,
+ Word mid,
lo = 0,
hi = di->symtab_used-1;
while (True) {
@@ -2372,10 +2371,7 @@
if (lo > hi) return -1; /* not found */
mid = (lo + hi) / 2;
a_mid_lo = di->symtab[mid].avmas.main;
- size = ( match_anywhere_in_sym
- ? di->symtab[mid].size
- : 1);
- a_mid_hi = ((Addr)di->symtab[mid].avmas.main) + size - 1;
+ a_mid_hi = ((Addr)di->symtab[mid].avmas.main) + di->symtab[mid].size - 1;
if (ptr < a_mid_lo) { hi = mid-1; continue; }
if (ptr > a_mid_hi) { lo = mid+1; continue; }
|
|
From: <sv...@va...> - 2016-11-12 20:11:32
|
Author: philippe
Date: Sat Nov 12 20:11:25 2016
New Revision: 16135
Log:
When --show-below-main=no, search main from the outermost stackframe
* main is more likely to be an outermost frame rather than an innermost
frame. So, searching from the outermost frame will more quickly find it.
* Also, in case the stacktrace contains twice the main functionn, this
ensures we only removes the functions below the outermost main.
Having 2 mains in a stacktrace does not happen normally.
However, this prepares for some future commit that improves
the outer/inner setup: the outer will append the inner guest stack trace.
The inner stack trace sometimes already contains main.
Searching from outermost frame main allows to keep the interesting
part of the stacktrace.
Modified:
trunk/coregrind/m_stacktrace.c
Modified: trunk/coregrind/m_stacktrace.c
==============================================================================
--- trunk/coregrind/m_stacktrace.c (original)
+++ trunk/coregrind/m_stacktrace.c Sat Nov 12 20:11:25 2016
@@ -1797,28 +1797,25 @@
StackTrace ips, UInt n_ips
)
{
- Bool main_done = False;
- Int i = 0;
+ Int i;
vg_assert(n_ips > 0);
- do {
- Addr ip = ips[i];
-
- // Stop after the first appearance of "main" or one of the other names
- // (the appearance of which is a pretty good sign that we've gone past
- // main without seeing it, for whatever reason)
- if ( ! VG_(clo_show_below_main) ) {
- Vg_FnNameKind kind = VG_(get_fnname_kind_from_IP)(ip);
- if (Vg_FnNameMain == kind || Vg_FnNameBelowMain == kind) {
- main_done = True;
- }
+ if ( ! VG_(clo_show_below_main) ) {
+ // Search (from the outer frame onwards) the appearance of "main"
+ // or the last appearance of a below main function.
+ // Then decrease n_ips so as to not call action for the below main
+ for (i = n_ips - 1; i >= 0; i--) {
+ Vg_FnNameKind kind = VG_(get_fnname_kind_from_IP)(ips[i]);
+ if (Vg_FnNameMain == kind || Vg_FnNameBelowMain == kind)
+ n_ips = i + 1;
+ if (Vg_FnNameMain == kind)
+ break;
}
+ }
+ for (i = 0; i < n_ips; i++)
// Act on the ip
- action(i, ip, opaque);
-
- i++;
- } while (i < n_ips && !main_done);
+ action(i, ips[i], opaque);
}
|
|
From: <sv...@va...> - 2016-11-12 19:51:58
|
Author: mjw Date: Sat Nov 12 19:51:51 2016 New Revision: 16134 Log: Cleanup none/tests/nocwd.vgtest tmp dirs. The none/tests/nocwd creates a really deep temporary directory structure that is also inaccessible after the test. This causes issues with some build wrappers like koji which fail to cleanup such deep subdirectories. So explicitly cleanup the directory after the test. https://bugzilla.redhat.com/show_bug.cgi?id=1390282 Modified: trunk/none/tests/nocwd.vgtest Modified: trunk/none/tests/nocwd.vgtest ============================================================================== --- trunk/none/tests/nocwd.vgtest (original) +++ trunk/none/tests/nocwd.vgtest Sat Nov 12 19:51:51 2016 @@ -1,2 +1,3 @@ prog: nocwd vgopts: -q --trace-children=yes +cleanup: chmod u+rwx /tmp/wd_test_*; rm -rf /tmp/wd_test_* |
|
From: <sv...@va...> - 2016-11-12 11:22:57
|
Author: philippe
Date: Sat Nov 12 11:22:50 2016
New Revision: 16133
Log:
Outer/inner setup : allow append to outer args, use a bigger --num-callers
* Similarly to what was done in revision r16104 for vg_perf, have a way
to append to predefined vg_regtest outer args, rather than only be able
to replace them.
* increase the num callers for outer tool to 40.
(This is in preparation of a future commit, that will allow outer tool
to append the inner guest stack trace to reported errors in the inner)
Modified:
trunk/perf/vg_perf.in
trunk/tests/vg_regtest.in
Modified: trunk/perf/vg_perf.in
==============================================================================
--- trunk/perf/vg_perf.in (original)
+++ trunk/perf/vg_perf.in Sat Nov 12 11:22:50 2016
@@ -71,8 +71,9 @@
--outer-valgrind: run these Valgrind(s) under the given outer valgrind.
These Valgrind(s) must be configured with --enable-inner.
--outer-tool: tool to use by the outer valgrind (default cachegrind).
- --outer-args: use this as outer tool args. If the outer args are starting with +,
- the given outer args are appended to the outer args predefined by vg_perf.
+ --outer-args: use this as outer tool args. If the outer args are starting
+ with +, the given outer args are appended to the outer args predefined
+ by vg_perf.
Any tools named in --tools must be present in all directories specified
with --vg. (This is not checked.)
Modified: trunk/tests/vg_regtest.in
==============================================================================
--- trunk/tests/vg_regtest.in (original)
+++ trunk/tests/vg_regtest.in Sat Nov 12 11:22:50 2016
@@ -43,7 +43,9 @@
# --outer-valgrind: run this valgrind under the given outer valgrind.
# This valgrind must be configured with --enable-inner.
# --outer-tool: tool to use by the outer valgrind (default memcheck).
-# --outer-args: use this as outer tool args.
+# --outer-args: use this as outer tool args. If the outer args are starting
+# with +, the given outer args are appended to the outer args predefined
+# by vg_regtest.
# --loop-till-fail: loops on the test(s) till one fail, then exit
# This is useful to obtain detailed trace or --keep-unfiltered
# output of a non deterministic test failure
@@ -182,6 +184,7 @@
my $outer_valgrind;
my $outer_tool = "memcheck";
my $outer_args;
+my $run_outer_args = "";
my $valgrind_lib = "$tests_dir/.in_place";
my $keepunfiltered = 0;
@@ -255,8 +258,8 @@
if (defined $outer_valgrind) {
$outer_valgrind = validate_program($tests_dir, $outer_valgrind, 1, 1);
- if (not defined $outer_args) {
- $outer_args =
+ if ((not defined $outer_args) || ($outer_args =~ /^\+/)) {
+ $run_outer_args =
" --command-line-only=yes"
. " --run-libc-freeres=no --sim-hints=enable-outer"
. " --smc-check=all-non-file"
@@ -265,7 +268,16 @@
. " --suppressions="
. validate_program($tests_dir,"./tests/outer_inner.supp",1,0)
. " --memcheck:leak-check=full --memcheck:show-reachable=no"
+ . " --num-callers=40"
. " ";
+ # we use a (relatively) big --num-callers, to allow the outer to report
+ # also the inner guest stack trace, when reporting an error.
+ if (defined $outer_args) {
+ $outer_args =~ s/^\+(.*)/$1/;
+ $run_outer_args = $run_outer_args . $outer_args;
+ }
+ } else {
+ $run_outer_args = $outer_args;
}
}
@@ -505,8 +517,8 @@
mysystem( "$envvars VALGRIND_LIB_INNER=$valgrind_lib "
. "$outer_valgrind "
. "--tool=" . $outer_tool . " "
- . "$outer_args "
. "--log-file=" . "$name.outer.log "
+ . "$run_outer_args "
. "$valgrind --command-line-only=yes --memcheck:leak-check=no "
. "--sim-hints=no-inner-prefix "
. "--tool=$tool $extraopts $vgopts "
|
|
From: <sv...@va...> - 2016-11-12 09:09:39
|
Author: iraisr
Date: Sat Nov 12 09:09:29 2016
New Revision: 16132
Log:
Provide a paragraph about Solaris agent thread in advanced concepts
n-i-bz
Modified:
trunk/docs/xml/manual-core-adv.xml
Modified: trunk/docs/xml/manual-core-adv.xml
==============================================================================
--- trunk/docs/xml/manual-core-adv.xml (original)
+++ trunk/docs/xml/manual-core-adv.xml Sat Nov 12 09:09:29 2016
@@ -1057,6 +1057,12 @@
OS X or Android.
</para>
+ <para>Unblocking processes blocked in system calls is implemented
+ via agent thread on Solaris. This is quite a different approach
+ than using ptrace on Linux, but leads to equivalent result - Valgrind
+ gdbserver is invoked. Note that agent thread is a Solaris OS
+ feature and cannot be disabled.
+ </para>
</listitem>
<listitem>
|
|
From: Ivo R. <iv...@iv...> - 2016-11-12 06:46:15
|
2016-11-11 8:11 GMT-07:00 <sv...@va...>: > > Log: > Update documentation and NEWS for xtree concept. > > Final patch of the xtree serie, which provides the documentation. > > Thanks to Ivo, Julian and Josef for the review comments. > And big thanks to Philippe who actually made this happen! I. |