You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(11) |
2
(9) |
3
(14) |
4
(18) |
5
(13) |
|
6
(4) |
7
(12) |
8
(16) |
9
(14) |
10
(8) |
11
(9) |
12
(7) |
|
13
(12) |
14
(6) |
15
(14) |
16
(5) |
17
(10) |
18
(8) |
19
(5) |
|
20
(10) |
21
(16) |
22
(5) |
23
(14) |
24
(10) |
25
(11) |
26
(6) |
|
27
(9) |
28
(8) |
29
(11) |
30
(9) |
31
(18) |
|
|
|
From: <sv...@va...> - 2008-01-03 00:53:02
|
Author: njn Date: 2008-01-03 00:44:09 +0000 (Thu, 03 Jan 2008) New Revision: 343 Log: Update front page, mostly for 3.3.0 changes. Modified: trunk/index.html Modified: trunk/index.html =================================================================== --- trunk/index.html 2007-12-11 03:10:44 UTC (rev 342) +++ trunk/index.html 2008-01-03 00:44:09 UTC (rev 343) @@ -13,17 +13,18 @@ <p>Valgrind is an <a href="/gallery/awards.html">award-winning</a> -suite of tools for debugging and profiling Linux -programs. With the tools that come with Valgrind, you can -automatically detect many memory management and threading bugs, -avoiding hours of frustrating bug-hunting, making your programs -more stable. You can also perform detailed profiling, to speed up -and reduce memory use of your programs.</p> +instrumentation framework for building dynamic analysis tools. There +are Valgrind tools that can automatically detect many memory management +and threading bugs, and profile your programs in detail. You can also +use Valgrind to build new tools. +</p> -<p>The Valgrind distribution currently includes four tools: a -memory error detector, a cache (time) profiler, a call-graph profiler, -and a heap (space) profiler. It runs on the following platforms: -X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux.</p> +<p>The Valgrind distribution currently includes five production-quality +tools: a memory error detector, a thread error detector, a cache and +branch-prediction profiler, a call-graph generating cache profiler, and a +heap profiler. It also includes two experimental tools: a data race +detector, and an instant memory leak detector. It runs on the following +platforms: X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux.</p> <p>Valgrind is <a href="http://www.opensource.org/">Open Source</a> / <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>, @@ -42,15 +43,6 @@ for x86/Linux, AMD64/Linux, PPC32/Linux and PPC64/Linux, is available. (<a href="/docs/manual/dist.news.html">release notes</a>). </p></li> - - <li><p>January 29 2007: valgrind-3.2.3, - for x86/Linux, AMD64/Linux, PPC32/Linux and PPC64/Linux, is available. - 3.2.3 is almost identical to 3.2.2, but fixes a regression that - unfortunately crept into 3.2.2.</p></li> - - <li><p>October 30 2006: The slides for a tutorial entitled "Building - Workload Characterization Tools with Valgrind" are available on the - <a href="/docs/pubs.html">publications page</a>.</p></li> </ul> <br /> |
|
From: John R.
|
Jeff Dike responded: John Reiser wrote: >>The web page http://bitwagon.com/valgrind+uml/index.html >>now exists with news, history, commentary, scripts, links > You refer to kmalloc and kfree as keeping object state intact between > kfree and kmalloc, thus not being semantically the same as malloc and > free. However, this is true of kmem_cache_alloc and kmem_cache_free, > not kmalloc and kfree. > > Object contents are destroyed between kfree and kmalloc. It looks more complicated to me. When include/linux/slab.h is in view, then I trace (where indentation indicates logical call [inline, or physical call]): kmalloc include/linux/slab.h __kmalloc mm/slab.c __do_kmalloc mm/slab.c __cache_alloc mm/slab.c __do_cache_alloc mm/slab.c ____cache_alloc mm/slab.c cpu_cache_get mm/slab.c When include/linux/slab_def.h is in view, then I trace: For a size that is constant at compile time [very often the case], then I trace: kmalloc include/linux/slab_def.h kmem_cache_alloc mm/slab.c __cache_alloc mm/slab.c <<and continues as in first case above>> If the size is non-constant at compile time, then I trace: kmalloc include/linux/slab_def.h __kmalloc mm/slab.c <<and continues as in first case above>> My tracking of kfree is much simpler: kfree mm/slab.c __cache_free mm/slab.c The net effect is that the slab allocator always calls __cache_alloc, thus re-using a kfree()d object and its accumulated contents. The slab allocator is by far the most used case. slub and slob have not yet been used during my explorations, as far as I can tell. > As far as kmem_cache_alloc and kmem_cache_free are concerned, would it > work to say that they are like malloc and free, except that if there's > a constructor, it is always called before kmem_cache_alloc returns? Under DEBUG, then cache_init_objs() in mm/slab.c does not call the ctor if SLAB_POISON. Under no-DEBUG, then cache_init_objs() always calls the ctor. So here is an exception to the proposed rule, and quite different *semantics* for DEBUG versus no-DEBUG. Also, cache_init_objs is not the allocator, but only the initial condition. Under DEBUG, then cache_alloc_debugcheck_after() in mm/slab.c calls the ctor if SLAB_POISON. Under no-DEBUG, then cache_alloc_debugcheck_after() is a no-op. Again, a difference in *semantics* between DEBUG and no-DEBUG. Altogether: the slab ctor is called once per object; except if DEBUG and SLAB_POISON, when kfree() is considered to destroy the old object and kmalloc is considered to create a new object (yet the two objects occupy identical address space.) In the case of no-DEBUG slab, then the ctor is never called as a result of calling kmalloc. So kmalloc+kfree is distinctly different in semantics from malloc+free, at least as implemented by slab, the most common case. Now, in my patches, I CHANGED the semantics of slab __cache_alloc so that it calls the ctor always, ignoring both no-DEBUG and SLAB_POISON. If there is a ctor, then this makes kmalloc+kfree closer to malloc+free. But if there is no ctor, then things are murky again. Should the result of kmalloc() be marked as if it were returned from malloc() or not? [I.e., are the contents undefined or defined?] At least some clients act that way (under DEBUG and SLAB_POISON), and in general it would be simpler for memcheck if it were so. The patch acts as if it *is* so: VALGRIND_MALLOCLIKE_BLOCK(objp, size, 0, 0); In particular, the contents are considered to be undefined. [Then the ctor, if it exists, defines some or all.] Obviously this is open for corrections, debate, and better understanding! I had difficulty understanding what I observed, and still I search ... The existing patches are the result of trial-and-error to find something which could survive for a complete session of boot+login+halt while respecting at least some intent of memcheck. But probably I missed an important point or two. In particular, I'm confused by allocations which return a "page": either "struct page *", or a "char *" with an aligned group of char of size PAGE_SIZE in the virtual address space. Help? -- John Reiser, jreiser@BitWagon.com |
|
From: Tom H. <to...@co...> - 2008-01-02 10:13:30
|
On 20/12/2007, Bart Van Assche <bar...@gm...> wrote: > There is a small inconsistency in the Valgrind core with regard to the > value of VG_(running_tid) concerning client memory accesses: this > variable contains a valid thread ID for all client memory accesses, > except for some accesses triggered from coregrind/m_main.c. The > attached patch fixes this and also contains some exp-drd > simplifications that became possible because of the fix in the core. > Can you please evaluate this patch and apply it if you consider it > acceptable ? Regression test results are unaffected by the patch -- > the results below are for the x86_64 platform. I've committed a (slightly modified) version of this now. Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |
|
From: <sv...@va...> - 2008-01-02 10:13:05
|
Author: tom
Date: 2008-01-02 10:13:04 +0000 (Wed, 02 Jan 2008)
New Revision: 7310
Log:
Mark the main thread as running while the initial memory declarations
are made to the tool so that the tool can associate that memory with
the main thread if it wishes.
Also cleanup existing hacks in the drd tool which worked around the
fact that the core did not set the current thread while declaring the
initial memory.
Path from Bart Van Assche <bar...@gm...>.
Modified:
trunk/coregrind/m_main.c
trunk/exp-drd/drd_main.c
trunk/exp-drd/drd_thread.c
Modified: trunk/coregrind/m_main.c
===================================================================
--- trunk/coregrind/m_main.c 2008-01-02 10:07:44 UTC (rev 7309)
+++ trunk/coregrind/m_main.c 2008-01-02 10:13:04 UTC (rev 7310)
@@ -1763,6 +1763,12 @@
{ Addr* seg_starts;
Int n_seg_starts;
+ /* Mark the main thread as running while we tell the tool about
+ the client memory so that the tool can associate that memory
+ with the main thread. */
+ tl_assert(VG_(running_tid) == VG_INVALID_THREADID);
+ VG_(running_tid) = tid_main;
+
seg_starts = get_seg_starts( &n_seg_starts );
vg_assert(seg_starts && n_seg_starts >= 0);
@@ -1821,6 +1827,10 @@
False, /* readable? */
False, /* writable? */
True /* executable? */ );
+
+ /* Clear the running thread indicator */
+ VG_(running_tid) = VG_INVALID_THREADID;
+ tl_assert(VG_(running_tid) == VG_INVALID_THREADID);
}
//--------------------------------------------------------------
Modified: trunk/exp-drd/drd_main.c
===================================================================
--- trunk/exp-drd/drd_main.c 2008-01-02 10:07:44 UTC (rev 7309)
+++ trunk/exp-drd/drd_main.c 2008-01-02 10:13:04 UTC (rev 7310)
@@ -321,13 +321,6 @@
const DrdThreadId drd_creator = VgThreadIdToDrdThreadId(creator);
tl_assert(created != VG_INVALID_THREADID);
thread_pre_create(drd_creator, created);
-#if 1
- // Hack: compensation for code missing in coregrind/m_main.c.
- if (created == 1)
- {
- thread_set_running_tid(1, 1);
- }
-#endif
if (IsValidDrdThreadId(drd_creator))
{
thread_new_segment(drd_creator);
Modified: trunk/exp-drd/drd_thread.c
===================================================================
--- trunk/exp-drd/drd_thread.c 2008-01-02 10:07:44 UTC (rev 7309)
+++ trunk/exp-drd/drd_thread.c 2008-01-02 10:13:04 UTC (rev 7310)
@@ -424,17 +424,14 @@
DrdThreadId thread_get_running_tid(void)
{
- // HACK. To do: remove the if-statement and keep the assert.
- if (VG_(get_running_tid)() != VG_INVALID_THREADID)
- tl_assert(VG_(get_running_tid)() == s_vg_running_tid);
+ tl_assert(VG_(get_running_tid)() == s_vg_running_tid);
tl_assert(s_drd_running_tid != DRD_INVALID_THREADID);
return s_drd_running_tid;
}
void thread_set_vg_running_tid(const ThreadId vg_tid)
{
- // HACK. To do: uncomment the line below.
- // tl_assert(vg_tid != VG_INVALID_THREADID);
+ tl_assert(vg_tid != VG_INVALID_THREADID);
if (vg_tid != s_vg_running_tid)
{
@@ -447,10 +444,6 @@
void thread_set_running_tid(const ThreadId vg_tid, const DrdThreadId drd_tid)
{
- // HACK. To do: remove the next two lines.
- if (vg_tid == VG_INVALID_THREADID)
- return;
-
tl_assert(vg_tid != VG_INVALID_THREADID);
tl_assert(drd_tid != DRD_INVALID_THREADID);
|
|
From: Tom H. <to...@co...> - 2008-01-02 10:08:05
|
On 01/01/2008, Bart Van Assche <bar...@gm...> wrote: > The attached exp-drd patch fixes the aforementioned crash. Julian, can > you please apply it ? Committed. Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |
|
From: <sv...@va...> - 2008-01-02 10:07:44
|
Author: tom
Date: 2008-01-02 10:07:44 +0000 (Wed, 02 Jan 2008)
New Revision: 7309
Log:
Stop drd trying to get a backtrace when there is no stack pointer.
Patch from Bart Van Assche <bar...@gm...>.
Modified:
trunk/exp-drd/drd_segment.c
Modified: trunk/exp-drd/drd_segment.c
===================================================================
--- trunk/exp-drd/drd_segment.c 2007-12-30 12:28:26 UTC (rev 7308)
+++ trunk/exp-drd/drd_segment.c 2008-01-02 10:07:44 UTC (rev 7309)
@@ -64,7 +64,7 @@
sg->next = 0;
sg->prev = 0;
- if (vg_created != VG_INVALID_THREADID)
+ if (vg_created != VG_INVALID_THREADID && VG_(get_SP)(vg_created) != 0)
sg->stacktrace = VG_(record_ExeContext)(vg_created, 0);
else
sg->stacktrace = 0;
|
|
From: Tom H. <th...@cy...> - 2008-01-02 04:00:28
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-01-02 03:15:03 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 323 tests, 66 stderr failures, 1 stdout failure, 28 post 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-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/supp_unknown (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-02 03:36:59
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-01-02 03:05:07 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 357 tests, 7 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-02 03:27:28
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-01-02 03:10:04 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 357 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (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 == 357 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Jan 2 03:19:18 2008 --- new.short Wed Jan 2 03:27:27 2008 *************** *** 8,10 **** ! == 357 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) --- 8,10 ---- ! == 357 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) *************** *** 16,18 **** none/tests/mremap2 (stdout) - none/tests/pth_detached (stdout) helgrind/tests/tc18_semabuse (stderr) --- 16,17 ---- |
|
From: Tom H. <th...@cy...> - 2008-01-02 03:15:21
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-01-02 03:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 359 tests, 30 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |
|
From: John R.
|
The web page http://bitwagon.com/valgrind+uml/index.html now exists with news, history, commentary, scripts, links on getting User Mode Linux for i686 to run under memcheck on i686. A standalone patch http://bitwagon.com/valgrind+uml/mc_main-asap.patch to valgrind-3.3.0 implements "--complain-asap=yes" independently of the other changes. See http://bitwagon.com/glibc-audit/glibc-audit.html about getting a "quiet" glibc. -- John Reiser, jreiser@BitWagon.com |
|
From: Bart V. A. <bar...@gm...> - 2008-01-01 19:31:16
|
On Dec 23, 2007 11:27 PM, Julian Seward <js...@ac...> wrote: > > > #0 vgPlain_get_StackTrace2 (tid_if_known=<value optimized out>, > > ips=0x389113f0, n_ips=12, ip=0, sp=0, fp=0, lr=0, fp_min=0, > > fp_max_orig=0) at m_stacktrace.c:230 > > The stack unwinder is being started with ip, sp, fp, lr values > for the thread concerned of zero, which leads to the segfault. > Are you sure the thread for which you are getting a stack trace > has good values for those registers? The attached exp-drd patch fixes the aforementioned crash. Julian, can you please apply it ? Thanks, Bart. |
|
From: Bart V. A. <bar...@gm...> - 2008-01-01 18:48:35
|
On Jan 1, 2008 7:11 PM, Julian Seward <js...@ac...> wrote: > > A more serious module-related question for drd is that it should not > include pub_core_*.h. Tools may only include pub_tool_*.h, in order > to control the complexity of the core/tool interface. For one thing > that will require adding the drd suppression file to DEFAULT_SUPP > in configure.in - not a problem. Can you list precisely the stuff from > the core_*.h includes that you need, that is not present in the > tool_*.h files? > Next to dynamically loading the exp-drd suppression file, the only aspect of the core interface being used in exp-drd is VG_(clo_backtrace_size). I can replace this variable with a constant however. Bart. |
|
From: Julian S. <js...@ac...> - 2008-01-01 18:13:16
|
On Tuesday 01 January 2008 18:11, Bart Van Assche wrote: > On Dec 30, 2007 1:30 PM, Tom Hughes <to...@co...> wrote: > > On 27/12/2007, Bart Van Assche <bar...@gm...> wrote: > > > The include file <pub_tool_libcproc.h> contains declarations for > > > various libc-functions. Two of these functions (VG_(getrlimit)() and > > > VG_(setrlimit)()) accept a pointer to a vki_rlimit structure. Inclusion > > > of pub_tool_vki.h is now required even when neither VG_(getrlimit)() or > > > VG_(setrlimit)() is called -- this is inconvenient. The attached patch > > > solves this. Can this patch please be committed on the trunk ? > > > > I'm not sure about this one - it looks like it rather violates the > > module boundaries. What do you think Julian? There are various places where pub_tool_libc*.h requires pub_tool_vki.h included first. A minor inconvenience resulting from misusing struct vki_rlimit in the interface to m_libc* and as well as its original purpose of describing the hosts' syscall interface. I'd prefer to leave it as it is. A more serious module-related question for drd is that it should not include pub_core_*.h. Tools may only include pub_tool_*.h, in order to control the complexity of the core/tool interface. For one thing that will require adding the drd suppression file to DEFAULT_SUPP in configure.in - not a problem. Can you list precisely the stuff from the core_*.h includes that you need, that is not present in the tool_*.h files? J |
|
From: Julian S. <js...@ac...> - 2008-01-01 17:54:12
|
> The cause of this crash is that in revision 7291 the behavior of > VG_(record_ExeContext)() has been changed: in revision 7290 and before > it was allowed to record the exe context from within > VG_TRACK(pre_thread_create)(), but from revision 7291 on this results > in a crash. As per http://www.mail-archive.com/valgrind-developers%40lists.sourceforge.net/msg01282.html and also http://www.mail-archive.com/valgrind-developers%40lists.sourceforge.net/msg01324.html the cause of the crash is that drd is calling VG_(record_ExeContext) for a thread which all the registers are zero, leading to the unwinder crashing. Not sure what 7291 has to do with it. 7291 simply created a copy of trunk 7290 post release. My guess is the important change is this, in 7300: --- trunk/coregrind/m_stacktrace.c 2007-12-12 11:42:33 UTC (rev 7299) +++ trunk/coregrind/m_stacktrace.c 2007-12-15 22:13:05 UTC (rev 7300) @@ -97,11 +97,9 @@ /* Assertion broken before main() is reached in pthreaded programs; the * offending stack traces only have one item. --njn, 2002-aug-16 */ /* vg_assert(fp_min <= fp_max);*/ - - if (fp_min + VG_(clo_max_stackframe) <= fp_max) { - /* If the stack is ridiculously big, don't poke around ... but - don't bomb out either. Needed to make John Regehr's - user-space threads package work. JRS 20021001 */ + if (fp_min + 512 >= fp_max) { + /* If the stack limits look bogus, don't poke around ... but + don't bomb out either. */ ips[0] = ip; return 1; } That change gets rid of an essentially bogus check and replaces it with something more reasonable. Unfortunately I think the bogus check caught the case where drd passes SP=0 (etc) and so had the unintended side effect of avoiding the segfault. Basically you can't call VG_(record_ExeContext) with a zero stack pointer as is happening now. So don't do the call -- wait till you have a valid SP and only then call it. In any case there is no loss since the previous arrangement would have gotten you only a 1-element stack trace with the top/only IP value being zero. J |
|
From: Bart V. A. <bar...@gm...> - 2008-01-01 17:11:23
|
On Dec 30, 2007 1:30 PM, Tom Hughes <to...@co...> wrote: > > On 27/12/2007, Bart Van Assche <bar...@gm...> wrote: > > > The include file <pub_tool_libcproc.h> contains declarations for various > > libc-functions. Two of these functions (VG_(getrlimit)() and > > VG_(setrlimit)()) accept a pointer to a vki_rlimit structure. Inclusion of > > pub_tool_vki.h is now required even when neither VG_(getrlimit)() or > > VG_(setrlimit)() is called -- this is inconvenient. The attached patch > > solves this. Can this patch please be committed on the trunk ? > > I'm not sure about this one - it looks like it rather violates the > module boundaries. What do you think Julian? I'm not sure I understand your comment -- can you please elaborate ? Bart. |
|
From: Bart V. A. <bar...@gm...> - 2008-01-01 17:10:29
|
On Dec 30, 2007 2:21 PM, Tom Hughes <to...@co...> wrote: > I was just looking at committing this, but I've run into a bit of a > problem, namely that drd segfaults on startup on my machine (with or > without this patch) so it's a bit hard for me to test it before I > commit it ;-) The cause of this crash is that in revision 7291 the behavior of VG_(record_ExeContext)() has been changed: in revision 7290 and before it was allowed to record the exe context from within VG_TRACK(pre_thread_create)(), but from revision 7291 on this results in a crash. I'm waiting for further input from Julian to resolve this issue. See also http://www.mail-archive.com/val...@li.../msg01278.html Bart. |
|
From: Tom H. <th...@cy...> - 2008-01-01 04:00:44
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-01-01 03:15:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 323 tests, 66 stderr failures, 1 stdout failure, 28 post 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-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/supp_unknown (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-01 03:37:39
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-01-01 03:05:09 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 357 tests, 7 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-01 03:28:03
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-01-01 03:10:06 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 357 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-01-01 03:14:23
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-01-01 03:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 359 tests, 30 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |