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) |
3
(7) |
|
4
|
5
(11) |
6
(13) |
7
(7) |
8
(5) |
9
(12) |
10
(19) |
|
11
(12) |
12
(7) |
13
(14) |
14
(8) |
15
(5) |
16
(5) |
17
(7) |
|
18
(12) |
19
(14) |
20
(12) |
21
(8) |
22
(4) |
23
(4) |
24
|
|
25
(11) |
26
(17) |
27
(15) |
28
(10) |
29
(19) |
30
(18) |
|
|
From: ilya s. <ily...@gm...> - 2011-09-21 21:15:54
|
> I am still wondering if you do not get the same information in the end with
> above feature. For each bin for a given parameter set, you at least get the
> sum of costs for all calls falling into the bin, as well as the average per
> call. And you now the parameter settings, as the bins are choosen according
> to parameters.
I think, binning by parameters solves a different problem than binning by cost.
There isn't always a simple parameter by which to bin. Say my function works
on trees, and takes longer on less-balanced trees. There isn't a
simple "balancedness"
parameter passed to the function; and trying to compute it on-the-fly
would be expensive
and could change the profile. Or say that some subset of invocations
has bad cache
performance; this might not be related so straightforwardly to a
parameter value.
If I knew what aspects of the input affect my runtime, I'd bin by those aspects;
but that's what I'm trying to find out :) I want to know, what's
common to those
invocations taking a disproportionate amount of the function's total cost?
>> Is it possible to create a client request that returns the current
> value of a particular statistic (Ir, Dr, ...)
>That should be easy, yes.
That would be a huge help.
>Printing a string including your parameters as part of the client request
>also should be easy.
It'd be much too expensive to print every invocation (there are
millions of invocations;
I do profiling on a large inputs to see the order-of-growth behavior.)
I'd like to print a small representative sample of invocations falling
into a given cost bin.
Also, my function consumes its inputs to produce the result (e.g.
destructively merging two lists),
so if I get the cost at the end, it's too late to print the inputs --
hence the two-pass approach.
>... this only would be possible for the inclusive cost of the function call
>when returnin
That would be fine. I mostly profile using inclusive costs anyway.
>You see, changing functions after the fact is quite tricky, and is different from
>collecting histogram data.
But you can predefine a separate function for each bin the user specifies,
and move the inclusive counts to that function after each invocation of the
original function, right?
So, callgrind would have a command-line option "split function F into
K bins (range MIN-MAX) by cost measure X"
(where X is Ir, Dr etc).
But even just collecting histogram data would be great.
Maybe, saved to an additional file, to keep the trace format for the main file?
On Wed, Sep 21, 2011 at 11:22 AM, Josef Weidendorfer
<Jos...@gm...> wrote:
> On Tuesday 20 September 2011, ilya shlyakhter wrote:
>> > of myfunc() influence its runtime. Callgrind would allow you to embed
>> > information for bins of this parameter setting into the function name.
>> > E.g. for myfunc(int a), the profile results would show you two functions:
>> >
>> > "myfunc:a>=5" : 90 calls, 1 billion instructions executed
>> > "myfunc:a<5" : 5 calls, 2 million instructions executed
>>
>> Thanks, that's very helpful, and is actually another extension I
>> wanted to suggest :)
>
> Ha!
>
>> But, I want to bin functions by their actual execution cost (whether
>> in Ir, Dr etc),
>> which is only known when the function has run; and then, print the arguments
>> of a few representative function invocations falling into a given _cost_ bin.
>
> I am still wondering if you do not get the same information in the end with
> above feature. For each bin for a given parameter set, you at least get the
> sum of costs for all calls falling into the bin, as well as the average per
> call. And you now the parameter settings, as the bins are choosen according
> to parameters.
>
>> Here's a simpler request that would let me manually simulate what I want to do:
>>
>> Is it possible to create a client request that returns the current
>> value of a particular statistic (Ir, Dr, ...) gathered by
>> cachegrind/callgrind -- just as I
>> can get the "processor time spent so far" using standard function calls?
>> (I know I can dump this to a file, but that's too slow. Can I get
>> this with a simple client request/API function call?)
>
> That should be easy, yes.
>
>> I could then do with that statistic what I now do with runtime (which
>> isn't too reliable) -- both make histograms and print the args for
>> representative invocations
>> falling into a given bin.
>
> Printing a string including your parameters as part of the client request
> also should be easy. Perhaps something like (if a is an parameter of your function):
>
> CALLGRIND_PRINTONRETURN_1("Call number %C to %F(a = %d): Ir = %I[Ir]/%E[Ir]\n", a);
>
> With the string printed when the current function is left, and some
> placeholders implicitely defined, e.g.
> %C: how often the current function was called
> %F: function name of current function
> %I[<event>]: inclusive cost spent in this function call for event type <event>
>
> Then you also can define your own format for your postprocessing of choice.
>
> On Wednesday 21 September 2011, ilya shlyakhter wrote:
>> On Mon, Sep 19, 2011 at 4:24 PM, Josef Weidendorfer
>> <Jos...@gm...> wrote:
>> > E.g. for adding histograms, you not only need to change cachegrind/callgrind,
>> > but also extend the format and parsers, such as {cg,callgrind}_annotate,
>> > and the KCachegrind GUI.
>>
>> Not necessarily: you could do what you did for different function
>> arguments -- for each function
>> for which you want histograms, create a separate function name for
>> each bin. And the current
>> "callee map" function of KCachegrind could effectively display the histogram.
>
> Hmm... sounds a little bit like misuse. But the bigger problem is ...
>
>> Say you have a function myFunc() that's called 1,000,000 times.
>> You create functions myFunc_1, myFunc_2, myFunc_3 to record counts
>> from invocations
>> that took (say) <100,000 Ir's, 100,000-1,000,000 Ir's and >1,000,000
>> Ir's respectively.
>> The callee map view would then show which group of calls takes the
>> most resources.
>>
>> So, after each myFunc() invocation, you would have to check that
>> invocation's Ir count,
>> and move all the counts recorded under this invocation to one of the
>> myFunc_? records.
>
> ... this only would be possible for the inclusive cost of the function call
> when returning, but it is not possible after the fact for all self cost spent
> inside the function, as I just add to a counter with the self cost since
> program start. And you also need to change it somehow for callee's of the function.
>
> That is exactly the reason why it works with the parameter bins: the parameter
> is known when the function is entered, and at that point of time I still can
> change the used function name.
>
> You see, changing functions after the fact is quite tricky, and is different from
> collecting histogram data.
>
> Josef
>
|
|
From: Christian B. <bor...@de...> - 2011-09-21 20:32:40
|
Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2011-09-21 22:05:01 CEST Ended at 2011-09-21 22:32:24 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 499 tests, 14 stderr failures, 0 stdout failures, 8 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) gdbserver_tests/nlpasssigalrm (stderrB) gdbserver_tests/nlsigvgdb (stderrB) memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) |
|
From: Christian B. <bor...@de...> - 2011-09-21 20:18:07
|
Nightly build on fedora390 ( Fedora 13/14/15 mix with gcc 3.5.3 on z196 (s390x) ) Started at 2011-09-21 21:45:01 CEST Ended at 2011-09-21 22:18:22 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 498 tests, 13 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) |
|
From: Josef W. <Jos...@gm...> - 2011-09-21 15:23:09
|
On Tuesday 20 September 2011, ilya shlyakhter wrote:
> > of myfunc() influence its runtime. Callgrind would allow you to embed
> > information for bins of this parameter setting into the function name.
> > E.g. for myfunc(int a), the profile results would show you two functions:
> >
> > "myfunc:a>=5" : 90 calls, 1 billion instructions executed
> > "myfunc:a<5" : 5 calls, 2 million instructions executed
>
> Thanks, that's very helpful, and is actually another extension I
> wanted to suggest :)
Ha!
> But, I want to bin functions by their actual execution cost (whether
> in Ir, Dr etc),
> which is only known when the function has run; and then, print the arguments
> of a few representative function invocations falling into a given _cost_ bin.
I am still wondering if you do not get the same information in the end with
above feature. For each bin for a given parameter set, you at least get the
sum of costs for all calls falling into the bin, as well as the average per
call. And you now the parameter settings, as the bins are choosen according
to parameters.
> Here's a simpler request that would let me manually simulate what I want to do:
>
> Is it possible to create a client request that returns the current
> value of a particular statistic (Ir, Dr, ...) gathered by
> cachegrind/callgrind -- just as I
> can get the "processor time spent so far" using standard function calls?
> (I know I can dump this to a file, but that's too slow. Can I get
> this with a simple client request/API function call?)
That should be easy, yes.
> I could then do with that statistic what I now do with runtime (which
> isn't too reliable) -- both make histograms and print the args for
> representative invocations
> falling into a given bin.
Printing a string including your parameters as part of the client request
also should be easy. Perhaps something like (if a is an parameter of your function):
CALLGRIND_PRINTONRETURN_1("Call number %C to %F(a = %d): Ir = %I[Ir]/%E[Ir]\n", a);
With the string printed when the current function is left, and some
placeholders implicitely defined, e.g.
%C: how often the current function was called
%F: function name of current function
%I[<event>]: inclusive cost spent in this function call for event type <event>
Then you also can define your own format for your postprocessing of choice.
On Wednesday 21 September 2011, ilya shlyakhter wrote:
> On Mon, Sep 19, 2011 at 4:24 PM, Josef Weidendorfer
> <Jos...@gm...> wrote:
> > E.g. for adding histograms, you not only need to change cachegrind/callgrind,
> > but also extend the format and parsers, such as {cg,callgrind}_annotate,
> > and the KCachegrind GUI.
>
> Not necessarily: you could do what you did for different function
> arguments -- for each function
> for which you want histograms, create a separate function name for
> each bin. And the current
> "callee map" function of KCachegrind could effectively display the histogram.
Hmm... sounds a little bit like misuse. But the bigger problem is ...
> Say you have a function myFunc() that's called 1,000,000 times.
> You create functions myFunc_1, myFunc_2, myFunc_3 to record counts
> from invocations
> that took (say) <100,000 Ir's, 100,000-1,000,000 Ir's and >1,000,000
> Ir's respectively.
> The callee map view would then show which group of calls takes the
> most resources.
>
> So, after each myFunc() invocation, you would have to check that
> invocation's Ir count,
> and move all the counts recorded under this invocation to one of the
> myFunc_? records.
... this only would be possible for the inclusive cost of the function call
when returning, but it is not possible after the fact for all self cost spent
inside the function, as I just add to a counter with the self cost since
program start. And you also need to change it somehow for callee's of the function.
That is exactly the reason why it works with the parameter bins: the parameter
is known when the function is entered, and at that point of time I still can
change the used function name.
You see, changing functions after the fact is quite tricky, and is different from
collecting histogram data.
Josef
|
|
From: ilya s. <ily...@gm...> - 2011-09-21 14:39:21
|
On Mon, Sep 19, 2011 at 4:24 PM, Josef Weidendorfer
<Jos...@gm...> wrote:
> E.g. for adding histograms, you not only need to change cachegrind/callgrind,
> but also extend the format and parsers, such as {cg,callgrind}_annotate,
> and the KCachegrind GUI.
Not necessarily: you could do what you did for different function
arguments -- for each function
for which you want histograms, create a separate function name for
each bin. And the current
"callee map" function of KCachegrind could effectively display the histogram.
Say you have a function myFunc() that's called 1,000,000 times.
You create functions myFunc_1, myFunc_2, myFunc_3 to record counts
from invocations
that took (say) <100,000 Ir's, 100,000-1,000,000 Ir's and >1,000,000
Ir's respectively.
The callee map view would then show which group of calls takes the
most resources.
So, after each myFunc() invocation, you would have to check that
invocation's Ir count,
and move all the counts recorded under this invocation to one of the
myFunc_? records.
You could also perhaps record each call to myFunc() as a call to
myFunc() that then
delegates the call to one of the myFunc_? routines; then KCachegrind's
callee map view
would be the actual histogram for myFunc().
ilya
|
|
From: <sv...@va...> - 2011-09-21 08:48:04
|
Author: sewardj
Date: 2011-09-21 09:43:08 +0100 (Wed, 21 Sep 2011)
New Revision: 12043
Log:
Add initial support for Mac OS X 10.7 (Lion). Tracked by bug #275168.
* configure.in support
* new supp file darwin11.supp
* comment out many intercepts in mc_replace_strmem.c and
vg_replace_malloc.c that are apparently unnecessary for Darwin
* add minimal handling for the following new syscalls and mach traps:
mach_port_set_context
task_get_exception_ports
getaudit_addr
psynch_mutexwait
psynch_mutexdrop
psynch_cvbroad
psynch_cvsignal
psynch_cvwait
psynch_rw_rdlock
psynch_rw_wrlock
psynch_rw_unlock
psynch_cvclrprepost
* wqthread_hijack on amd64-darwin: deal with
tst->os_state.pthread having an apparently different offset,
which caused an assertion failure
* m_debuginfo: for 32 bit processes on Lion, use the DebugInfoFSM
cleanup added in r12041/12042 to handle apparently new dyld
behaviour, which is to map text areas r-- first and only
vm_protect them later to r-x.
The following cleanups remain to be done
* remove apparently pointless, commented out wrapper macro
invokations in mc_replace_strmem.c, eg
//MEMMOVE(VG_Z_DYLD, memmove)
(or determine that they are still necessary, and uncomment)
* ditto in vg_replace_malloc.c, plus general VGO_darwin cleanups
there
* write proper syscall wrappers for
mach_port_set_context
task_get_exception_ports
getaudit_addr
psynch_mutexwait
psynch_mutexdrop
psynch_cvbroad
psynch_cvsignal
psynch_cvwait
psynch_rw_rdlock
psynch_rw_wrlock
psynch_rw_unlock
psynch_cvclrprepost
These are currently just no-ops and may be causing Memcheck to
report false undef-value errors
* figure out why it doesn't work properly unless built with gcc-4.2 on
Lion.
gcc-4.2 is the "normal" gcc (i686-apple-darwin11-gcc-4.2.1). Plain
gcc is the hybrid gcc-front-end clang-back-end thing
(i686-apple-darwin11-llvm-gcc-4.2). Whereas on Snow Leopard, plain
gcc is the normal gcc.
The symptoms of the failure are that wqthread_hijack in
syswrap-amd64-linux.c hits this /*NOTREACHED*/ vg_assert(0); right
at the end (you need a pretty complex threaded app to trigger this),
which makes me think that either ML_(wqthread_continue_NORETURN) or
call_on_new_stack_0_1 do return, which they are not expected to.
* figure out if some of the uninitialised value errors reported in
system libraries on are caused by Memcheck being confused by LLVM
generated code, as per bug #242137
Added:
trunk/darwin11.supp
Modified:
trunk/Makefile.am
trunk/configure.in
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/coregrind/pub_core_debuginfo.h
trunk/include/pub_tool_redir.h
trunk/include/vki/vki-scnums-darwin.h
trunk/memcheck/mc_replace_strmem.c
Modified: trunk/Makefile.am
===================================================================
--- trunk/Makefile.am 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/Makefile.am 2011-09-21 08:43:08 UTC (rev 12043)
@@ -53,6 +53,7 @@
exp-sgcheck.supp \
darwin9.supp darwin9-drd.supp \
darwin10.supp darwin10-drd.supp \
+ darwin11.supp \
bionic.supp
DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
@@ -116,4 +117,5 @@
clean-local:
rm -rf $(inplacedir)
-
+# Need config.h in the installed tree, since some files depend on it
+pkginclude_HEADERS = config.h
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/configure.in 2011-09-21 08:43:08 UTC (rev 12043)
@@ -246,11 +246,19 @@
# Nb: for Darwin we set DEFAULT_SUPP here. That's because Darwin
# has only one relevant version, the OS version. The `uname` check
# is a good way to get that version (i.e. "Darwin 9.6.0" is Mac OS
- # X 10.5.6, and "Darwin 10.x" is Mac OS X 10.6.x Snow Leopard),
+ # X 10.5.6, and "Darwin 10.x" is Mac OS X 10.6.x Snow Leopard,
+ # and possibly "Darwin 11.x" is Mac OS X 10.7.x Lion),
# and we don't know of an macros similar to __GLIBC__ to get that info.
#
# XXX: `uname -r` won't do the right thing for cross-compiles, but
# that's not a problem yet.
+ #
+ # jseward 21 Sept 2011: I seriously doubt whether V 3.7.0 will work
+ # on OS X 10.5.x; I haven't tested yet, and only plan to test 3.7.0
+ # on 10.6.8 and 10.7.1. Although tempted to delete the configure
+ # time support for 10.5 (the 9.* pattern just below), I'll leave it
+ # in for now, just in case anybody wants to give it a try. But I'm
+ # assuming that 3.7.0 is a Snow Leopard and Lion-only release.
case "${kernel}" in
9.*)
AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
@@ -264,9 +272,16 @@
DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
;;
- *)
+ 11.*)
+ AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
+ AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
+ # FIXME: change these to xx11.supp
+ DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
+ ;;
+ *)
AC_MSG_RESULT([unsupported (${kernel})])
- AC_MSG_ERROR([Valgrind works on Darwin 9.x and 10.x (Mac OS X 10.5 and 10.6)])
+ AC_MSG_ERROR([Valgrind works on Darwin 10.x and 11.x (Mac OS X 10.6/7)])
;;
esac
;;
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-21 08:43:08 UTC (rev 12043)
@@ -571,11 +571,88 @@
#if defined(VGO_linux) || defined(VGO_darwin)
/* The debug info system is driven by notifications that a text
- segment has been mapped in, or unmapped. When that happens it
- tries to acquire/discard whatever info is available for the
- corresponding object. This section contains the notification
- handlers. */
+ segment has been mapped in, or unmapped, or when sections change
+ permission. It's all a bit kludgey and basically means watching
+ syscalls, trying to second-guess when the system's dynamic linker
+ is done with mapping in a new object for execution. This is all
+ tracked using the DebugInfoFSM struct for the object. Anyway, once
+ we finally decide we've got to an accept state, this section then
+ will acquire whatever info is available for the corresponding
+ object. This section contains the notification handlers, which
+ update the FSM and determine when an accept state has been reached.
+*/
+/* When the sequence of observations causes a DebugInfoFSM to move
+ into the accept state, call here to actually get the debuginfo read
+ in. Returns a ULong whose purpose is described in comments
+ preceding VG_(di_notify_mmap) just below.
+*/
+static ULong di_notify_ACHIEVE_ACCEPT_STATE ( struct _DebugInfo* di )
+{
+ ULong di_handle;
+ Bool ok;
+
+ vg_assert(di->fsm.filename);
+ TRACE_SYMTAB("\n");
+ TRACE_SYMTAB("------ start ELF OBJECT "
+ "------------------------------\n");
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
+ TRACE_SYMTAB("\n");
+
+ /* We're going to read symbols and debug info for the avma
+ ranges [rx_map_avma, +rx_map_size) and [rw_map_avma,
+ +rw_map_size). First get rid of any other DebugInfos which
+ overlap either of those ranges (to avoid total confusion). */
+ discard_DebugInfos_which_overlap_with( di );
+
+ /* .. and acquire new info. */
+# if defined(VGO_linux)
+ ok = ML_(read_elf_debug_info)( di );
+# elif defined(VGO_darwin)
+ ok = ML_(read_macho_debug_info)( di );
+# else
+# error "unknown OS"
+# endif
+
+ if (ok) {
+
+ TRACE_SYMTAB("\n------ Canonicalising the "
+ "acquired info ------\n");
+ /* invalidate the CFI unwind cache. */
+ cfsi_cache__invalidate();
+ /* prepare read data for use */
+ ML_(canonicaliseTables)( di );
+ /* notify m_redir about it */
+ TRACE_SYMTAB("\n------ Notifying m_redir ------\n");
+ VG_(redir_notify_new_DebugInfo)( di );
+ /* Note that we succeeded */
+ di->have_dinfo = True;
+ tl_assert(di->handle > 0);
+ di_handle = di->handle;
+ /* Check invariants listed in
+ Comment_on_IMPORTANT_REPRESENTATIONAL_INVARIANTS in
+ priv_storage.h. */
+ check_CFSI_related_invariants(di);
+
+ } else {
+ TRACE_SYMTAB("\n------ ELF reading failed ------\n");
+ /* Something went wrong (eg. bad ELF file). Should we delete
+ this DebugInfo? No - it contains info on the rw/rx
+ mappings, at least. */
+ di_handle = 0;
+ vg_assert(di->have_dinfo == False);
+ }
+
+ TRACE_SYMTAB("\n");
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
+ TRACE_SYMTAB("------ end ELF OBJECT "
+ "------------------------------\n");
+ TRACE_SYMTAB("\n");
+
+ return di_handle;
+}
+
+
/* Notify the debuginfo system about a new mapping. This is the way
new debug information gets loaded. If allow_SkFileV is True, it
will try load debug info if the mapping at 'a' belongs to Valgrind;
@@ -594,9 +671,8 @@
{
NSegment const * seg;
HChar* filename;
- Bool ok, is_rx_map, is_rw_map;
+ Bool is_rx_map, is_rw_map, is_ro_map;
DebugInfo* di;
- ULong di_handle;
SysRes fd;
Int nread, oflags;
HChar buf1k[1024];
@@ -707,6 +783,8 @@
*/
is_rx_map = False;
is_rw_map = False;
+ is_ro_map = False;
+
# if defined(VGA_x86) || defined(VGA_ppc32)
is_rx_map = seg->hasR && seg->hasX;
is_rw_map = seg->hasR && seg->hasW;
@@ -720,12 +798,16 @@
# error "Unknown platform"
# endif
+# if defined(VGP_x86_darwin) && DARWIN_VERS == DARWIN_10_7
+ is_ro_map = seg->hasR && !seg->hasW && !seg->hasX;
+# endif
+
if (debug)
VG_(printf)("di_notify_mmap-3: is_rx_map %d, is_rw_map %d\n",
(Int)is_rx_map, (Int)is_rw_map);
- /* If it is neither text-ish nor data-ish, we're not interested. */
- if (!(is_rx_map || is_rw_map))
+ /* Ignore mappings with permissions we can't possibly be interested in. */
+ if (!(is_rx_map || is_rw_map || is_ro_map))
return 0;
/* Peer at the first few bytes of the file, to see if it is an ELF */
@@ -799,71 +881,30 @@
}
}
- /* If we don't have an rx and rw mapping, or if we already have
- debuginfo for this mapping for whatever reason, go no
- further. */
- if ( ! (di->fsm.have_rx_map && di->fsm.have_rw_map && !di->have_dinfo) )
- return 0;
+ if (is_ro_map) {
+ /* We have a r-- mapping. Note the details (OSX 10.7, 32-bit only) */
+ if (!di->fsm.have_ro_map) {
+ di->fsm.have_ro_map = True;
+ di->fsm.ro_map_avma = a;
+ di->fsm.ro_map_size = seg->end + 1 - seg->start;
+ di->fsm.ro_map_foff = seg->offset;
+ } else {
+ /* FIXME: complain about a second r-- mapping */
+ }
+ }
- /* Ok, so, finally, let's try to read the debuginfo. */
- vg_assert(di->fsm.filename);
- TRACE_SYMTAB("\n");
- TRACE_SYMTAB("------ start ELF OBJECT "
- "------------------------------\n");
- TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
- TRACE_SYMTAB("\n");
-
- /* We're going to read symbols and debug info for the avma
- ranges [rx_map_avma, +rx_map_size) and [rw_map_avma,
- +rw_map_size). First get rid of any other DebugInfos which
- overlap either of those ranges (to avoid total confusion). */
- discard_DebugInfos_which_overlap_with( di );
-
- /* .. and acquire new info. */
-# if defined(VGO_linux)
- ok = ML_(read_elf_debug_info)( di );
-# elif defined(VGO_darwin)
- ok = ML_(read_macho_debug_info)( di );
-# else
-# error "unknown OS"
-# endif
-
- if (ok) {
-
- TRACE_SYMTAB("\n------ Canonicalising the "
- "acquired info ------\n");
- /* invalidate the CFI unwind cache. */
- cfsi_cache__invalidate();
- /* prepare read data for use */
- ML_(canonicaliseTables)( di );
- /* notify m_redir about it */
- TRACE_SYMTAB("\n------ Notifying m_redir ------\n");
- VG_(redir_notify_new_DebugInfo)( di );
- /* Note that we succeeded */
- di->have_dinfo = True;
- tl_assert(di->handle > 0);
- di_handle = di->handle;
- /* Check invariants listed in
- Comment_on_IMPORTANT_REPRESENTATIONAL_INVARIANTS in
- priv_storage.h. */
- check_CFSI_related_invariants(di);
-
+ /* So, finally, are we in an accept state? */
+ if (di->fsm.have_rx_map && di->fsm.have_rw_map && !di->have_dinfo) {
+ /* Ok, so, finally, we found what we need, and we haven't
+ already read debuginfo for this object. So let's do so now.
+ Yee-ha! */
+ return di_notify_ACHIEVE_ACCEPT_STATE ( di );
} else {
- TRACE_SYMTAB("\n------ ELF reading failed ------\n");
- /* Something went wrong (eg. bad ELF file). Should we delete
- this DebugInfo? No - it contains info on the rw/rx
- mappings, at least. */
- di_handle = 0;
- vg_assert(di->have_dinfo == False);
+ /* If we don't have an rx and rw mapping, or if we already have
+ debuginfo for this mapping for whatever reason, go no
+ further. */
+ return 0;
}
-
- TRACE_SYMTAB("\n");
- TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
- TRACE_SYMTAB("------ end ELF OBJECT "
- "------------------------------\n");
- TRACE_SYMTAB("\n");
-
- return di_handle;
}
@@ -896,6 +937,72 @@
}
}
+
+/* This is a MacOSX 10.7 32-bit only special. See comments on the
+ declaration of struct _DebugInfoFSM for details. */
+void VG_(di_notify_vm_protect)( Addr a, SizeT len, UInt prot )
+{
+ Bool do_nothing = True;
+# if defined(VGP_x86_darwin) && DARWIN_VERS == DARWIN_10_7
+ do_nothing = False;
+# endif
+ if (do_nothing /* wrong platform */)
+ return;
+
+ Bool r_ok = toBool(prot & VKI_PROT_READ);
+ Bool w_ok = toBool(prot & VKI_PROT_WRITE);
+ Bool x_ok = toBool(prot & VKI_PROT_EXEC);
+ if (! (r_ok && !w_ok && x_ok))
+ return; /* not an upgrade to r-x */
+
+ /* Find a DebugInfo containing a FSM that has [a, +len) previously
+ observed as a r-- mapping, plus some other rw- mapping. If such
+ is found, conclude we're in an accept state and read debuginfo
+ accordingly. */
+ DebugInfo* di;
+ for (di = debugInfo_list; di; di = di->next) {
+ vg_assert(di->fsm.filename);
+ if (di->have_dinfo)
+ continue; /* already have debuginfo for this object */
+ if (!di->fsm.have_ro_map)
+ continue; /* need to have a r-- mapping for this object */
+ if (di->fsm.have_rx_map)
+ continue; /* rx- mapping already exists */
+ if (!di->fsm.have_rw_map)
+ continue; /* need to have a rw- mapping */
+ if (di->fsm.ro_map_avma != a || di->fsm.ro_map_size != len)
+ continue; /* this isn't an upgrade of the r-- mapping */
+ /* looks like we're in luck! */
+ break;
+ }
+ if (di == NULL)
+ return; /* didn't find anything */
+
+ /* Do the upgrade. Copy the RO map info into the RX map info and
+ pretend we never saw the RO map at all. */
+ vg_assert(di->fsm.have_rw_map);
+ vg_assert(di->fsm.have_ro_map);
+ vg_assert(!di->fsm.have_rx_map);
+
+ di->fsm.have_rx_map = True;
+ di->fsm.rx_map_avma = di->fsm.ro_map_avma;
+ di->fsm.rx_map_size = di->fsm.ro_map_size;
+ di->fsm.rx_map_foff = di->fsm.ro_map_foff;
+
+ di->fsm.have_ro_map = False;
+ di->fsm.ro_map_avma = 0;
+ di->fsm.ro_map_size = 0;
+ di->fsm.ro_map_foff = 0;
+
+ /* And since we're now in an accept state, read debuginfo. Finally. */
+ ULong di_handle __attribute__((unused))
+ = di_notify_ACHIEVE_ACCEPT_STATE( di );
+ /* di_handle is ignored. That's not a problem per se -- it just
+ means nobody will ever be able to refer to this debuginfo by
+ handle since nobody will know what the handle value is. */
+}
+
+
/*--------- PDB (windows debug info) reading --------- */
/* this should really return ULong, as per VG_(di_notify_mmap). */
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-21 08:43:08 UTC (rev 12043)
@@ -402,7 +402,8 @@
reaches an accept state, signals that we should now read debug info
from the object into the associated struct _DebugInfo. The accept
state is arrived at when have_rx_map and have_rw_map both become
- true.
+ true. The initial state is one in which we have no observations,
+ so have_rx_map and have_rw_map are both false.
This is all rather ad-hoc; for example it has no way to record more
than one rw or rx mapping for a given object, not because such
@@ -411,9 +412,25 @@
read debug info. It may be that in future we need to track more
state in order to make the decision, so this struct would then get
expanded.
+
+ The normal sequence of events is one of
+
+ start --> r-x mapping --> rw- mapping --> accept
+ start --> rw- mapping --> r-x mapping --> accept
+
+ that is, take the first r-x and rw- mapping we see, and we're done.
+
+ On MacOSX 10.7, 32-bit, there appears to be a new variant:
+
+ start --> r-- mapping --> rw- mapping
+ --> upgrade r-- mapping to r-x mapping --> accept
+
+ where the upgrade is done by a call to vm_protect. Hence we
+ need to also track this possibility.
*/
struct _DebugInfoFSM
{
+ /* --- all targets --- */
UChar* filename; /* in mallocville (VG_AR_DINFO) */
Bool have_rx_map; /* did we see a r?x mapping yet for the file? */
@@ -426,6 +443,13 @@
Addr rw_map_avma; /* ditto, for the rw? mapping we believe is the */
SizeT rw_map_size; /* .data segment mapping */
OffT rw_map_foff;
+
+ /* --- OSX 10.7, 32-bit only --- */
+ Bool have_ro_map; /* did we see a r-- mapping yet for the file? */
+
+ Addr ro_map_avma; /* file offset, length, avma for said mapping */
+ SizeT ro_map_size;
+ OffT ro_map_foff;
};
Modified: trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
===================================================================
--- trunk/coregrind/m_replacemalloc/vg_replace_malloc.c 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_replacemalloc/vg_replace_malloc.c 2011-09-21 08:43:08 UTC (rev 12043)
@@ -263,7 +263,6 @@
ALLOC_or_NULL(VG_Z_LIBC_SONAME, malloc, malloc);
#elif defined(VGO_darwin)
- ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, malloc, malloc);
ALLOC_or_NULL(VG_Z_LIBC_SONAME, malloc, malloc);
ZONEALLOC_or_NULL(VG_Z_LIBC_SONAME, malloc_zone_malloc, malloc);
@@ -292,13 +291,13 @@
#elif defined(VGO_darwin)
// operator new(unsigned int), GNU mangling
#if VG_WORDSIZE == 4
- ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new);
- ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwj, __builtin_new);
+ //ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new);
+ //ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwj, __builtin_new);
#endif
// operator new(unsigned long), GNU mangling
#if 1 // FIXME: is this right?
- ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new);
- ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwm, __builtin_new);
+ //ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new);
+ //ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwm, __builtin_new);
#endif
#endif
@@ -321,13 +320,13 @@
#elif defined(VGO_darwin)
// operator new(unsigned, std::nothrow_t const&), GNU mangling
#if VG_WORDSIZE == 4
- ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new);
- ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new);
+ //ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new);
+ //ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new);
#endif
// operator new(unsigned long, std::nothrow_t const&), GNU mangling
#if 1 // FIXME: is this right?
- ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new);
- ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new);
+ //ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new);
+ //ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new);
#endif
#endif
@@ -353,13 +352,13 @@
#elif defined(VGO_darwin)
// operator new[](unsigned int), GNU mangling
#if VG_WORDSIZE == 4
- ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new );
- ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znaj, __builtin_vec_new );
+ //ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new );
+ //ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znaj, __builtin_vec_new );
#endif
// operator new[](unsigned long), GNU mangling
#if 1 // FIXME: is this right?
- ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new );
- ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znam, __builtin_vec_new );
+ //ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new );
+ //ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znam, __builtin_vec_new );
#endif
#endif
@@ -382,13 +381,13 @@
#elif defined(VGO_darwin)
// operator new[](unsigned, std::nothrow_t const&), GNU mangling
#if VG_WORDSIZE == 4
- ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new );
- ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new );
+ //ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new );
+ //ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new );
#endif
// operator new[](unsigned long, std::nothrow_t const&), GNU mangling
#if 1 // FIXME: is this right?
- ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new );
- ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new );
+ //ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new );
+ //ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new );
#endif
#endif
@@ -405,7 +404,7 @@
void VG_REPLACE_FUNCTION_EZU(10040,soname,fnname) (void *zone, void *p) \
{ \
if (!init_done) init(); \
- MALLOC_TRACE(#vg_replacement "(%p, %p)\n", zone, p ); \
+ MALLOC_TRACE(#fnname "(%p, %p)\n", zone, p ); \
if (p == NULL) \
return; \
(void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -417,19 +416,17 @@
void VG_REPLACE_FUNCTION_EZU(10050,soname,fnname) (void *p) \
{ \
if (!init_done) init(); \
- MALLOC_TRACE(#vg_replacement "(%p)\n", p ); \
+ MALLOC_TRACE(#fnname "(%p)\n", p ); \
if (p == NULL) \
return; \
(void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
}
-// free
#if defined(VGO_linux)
FREE(VG_Z_LIBSTDCXX_SONAME, free, free );
FREE(VG_Z_LIBC_SONAME, free, free );
#elif defined(VGO_darwin)
- FREE(VG_Z_LIBSTDCXX_SONAME, free, free );
FREE(VG_Z_LIBC_SONAME, free, free );
ZONEFREE(VG_Z_LIBC_SONAME, malloc_zone_free, free );
@@ -444,8 +441,8 @@
FREE(VG_Z_LIBC_SONAME, cfree, free );
#elif defined(VGO_darwin)
- FREE(VG_Z_LIBSTDCXX_SONAME, cfree, free );
- FREE(VG_Z_LIBC_SONAME, cfree, free );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, cfree, free );
+ //FREE(VG_Z_LIBC_SONAME, cfree, free );
#endif
@@ -462,8 +459,8 @@
#elif defined(VGO_darwin)
// operator delete(void*), GNU mangling
- FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete );
- FREE(VG_Z_LIBC_SONAME, _ZdlPv, __builtin_delete );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete );
+ //FREE(VG_Z_LIBC_SONAME, _ZdlPv, __builtin_delete );
#endif
@@ -477,8 +474,8 @@
#elif defined(VGO_darwin)
// operator delete(void*, std::nothrow_t const&), GNU mangling
- FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete );
- FREE(VG_Z_LIBC_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete );
+ //FREE(VG_Z_LIBC_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete );
#endif
@@ -495,11 +492,11 @@
#elif defined(VGO_darwin)
// operator delete[](void*), not mangled (for gcc 2.96)
- FREE(VG_Z_LIBSTDCXX_SONAME, __builtin_vec_delete, __builtin_vec_delete );
- FREE(VG_Z_LIBC_SONAME, __builtin_vec_delete, __builtin_vec_delete );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, __builtin_vec_delete, __builtin_vec_delete );
+ //FREE(VG_Z_LIBC_SONAME, __builtin_vec_delete, __builtin_vec_delete );
// operator delete[](void*), GNU mangling
- FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete );
- FREE(VG_Z_LIBC_SONAME, _ZdaPv, __builtin_vec_delete );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete );
+ //FREE(VG_Z_LIBC_SONAME, _ZdaPv, __builtin_vec_delete );
#endif
@@ -513,8 +510,8 @@
#elif defined(VGO_darwin)
// operator delete[](void*, std::nothrow_t const&), GNU mangling
- FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete );
- FREE(VG_Z_LIBC_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete );
+ //FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete );
+ //FREE(VG_Z_LIBC_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete );
#endif
@@ -531,7 +528,7 @@
void* v; \
\
if (!init_done) init(); \
- MALLOC_TRACE("calloc(%p, %llu,%llu)", zone, (ULong)nmemb, (ULong)size ); \
+ MALLOC_TRACE("zone_calloc(%p, %llu,%llu)", zone, (ULong)nmemb, (ULong)size ); \
\
v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_calloc, nmemb, size ); \
MALLOC_TRACE(" = %p\n", v ); \
@@ -587,7 +584,7 @@
void* v; \
\
if (!init_done) init(); \
- MALLOC_TRACE("realloc(%p,%p,%llu)", zone, ptrV, (ULong)new_size ); \
+ MALLOC_TRACE("zone_realloc(%p,%p,%llu)", zone, ptrV, (ULong)new_size ); \
\
if (ptrV == NULL) \
/* We need to call a malloc-like function; so let's use \
@@ -653,7 +650,7 @@
void* v; \
\
if (!init_done) init(); \
- MALLOC_TRACE("memalign(%p, al %llu, size %llu)", \
+ MALLOC_TRACE("zone_memalign(%p, al %llu, size %llu)", \
zone, (ULong)alignment, (ULong)n ); \
\
/* Round up to minimum alignment if necessary. */ \
@@ -759,7 +756,7 @@
MALLOPT(VG_Z_LIBC_SONAME, mallopt);
#elif defined(VGO_darwin)
- MALLOPT(VG_Z_LIBC_SONAME, mallopt);
+ //MALLOPT(VG_Z_LIBC_SONAME, mallopt);
#endif
@@ -801,7 +798,7 @@
MALLOC_TRIM(VG_Z_LIBC_SONAME, malloc_trim);
#elif defined(VGO_darwin)
- MALLOC_TRIM(VG_Z_LIBC_SONAME, malloc_trim);
+ //MALLOC_TRIM(VG_Z_LIBC_SONAME, malloc_trim);
#endif
@@ -838,7 +835,7 @@
POSIX_MEMALIGN(VG_Z_LIBC_SONAME, posix_memalign);
#elif defined(VGO_darwin)
- POSIX_MEMALIGN(VG_Z_LIBC_SONAME, posix_memalign);
+ //POSIX_MEMALIGN(VG_Z_LIBC_SONAME, posix_memalign);
#endif
@@ -868,7 +865,7 @@
MALLOC_USABLE_SIZE(VG_Z_LIBC_SONAME, malloc_size);
#elif defined(VGO_darwin)
- MALLOC_USABLE_SIZE(VG_Z_LIBC_SONAME, malloc_usable_size);
+ //MALLOC_USABLE_SIZE(VG_Z_LIBC_SONAME, malloc_usable_size);
MALLOC_USABLE_SIZE(VG_Z_LIBC_SONAME, malloc_size);
#endif
@@ -918,7 +915,7 @@
MALLOC_STATS(VG_Z_LIBC_SONAME, malloc_stats);
#elif defined(VGO_darwin)
- MALLOC_STATS(VG_Z_LIBC_SONAME, malloc_stats);
+ //MALLOC_STATS(VG_Z_LIBC_SONAME, malloc_stats);
#endif
@@ -944,34 +941,36 @@
MALLINFO(VG_Z_LIBC_SONAME, mallinfo);
#elif defined(VGO_darwin)
- MALLINFO(VG_Z_LIBC_SONAME, mallinfo);
+ //MALLINFO(VG_Z_LIBC_SONAME, mallinfo);
#endif
+/*------------------ Darwin zone stuff ------------------*/
+
#if defined(VGO_darwin)
static vki_malloc_zone_t vg_default_zone = {
- NULL, // reserved
- NULL, // reserved
- NULL, // GrP fixme malloc_size
+ NULL, // reserved1
+ NULL, // reserved2
+ NULL, // GrP fixme: malloc_size
(void*)VG_REPLACE_FUNCTION_EZU(10020,VG_Z_LIBC_SONAME,malloc_zone_malloc),
(void*)VG_REPLACE_FUNCTION_EZU(10060,VG_Z_LIBC_SONAME,malloc_zone_calloc),
(void*)VG_REPLACE_FUNCTION_EZU(10130,VG_Z_LIBC_SONAME,malloc_zone_valloc),
(void*)VG_REPLACE_FUNCTION_EZU(10040,VG_Z_LIBC_SONAME,malloc_zone_free),
(void*)VG_REPLACE_FUNCTION_EZU(10080,VG_Z_LIBC_SONAME,malloc_zone_realloc),
- NULL, // GrP fixme destroy
+ NULL, // GrP fixme: destroy
"ValgrindMallocZone",
NULL, // batch_malloc
NULL, // batch_free
- NULL, // GrP fixme introspect
+ NULL, // GrP fixme: introspect
2, // version (GrP fixme 3?)
- // DDD: this field exists in Mac OS 10.6, but not 10.5.
- #if 0
- (void*)VG_REPLACE_FUNCTION_ZU(VG_Z_LIBC_SONAME, malloc_zone_memalign)
- #endif
+ NULL, /* memalign */ // DDD: this field exists in Mac OS 10.6, but not 10.5.
+ NULL, /* free_definite_size */
+ NULL, /* pressure_relief */
};
+
#define DEFAULT_ZONE(soname, fnname) \
\
void *VG_REPLACE_FUNCTION_EZU(10210,soname,fnname) ( void ); \
@@ -980,23 +979,36 @@
return &vg_default_zone; \
}
-DEFAULT_ZONE(VG_Z_LIBC_SONAME, malloc_zone_from_ptr);
DEFAULT_ZONE(VG_Z_LIBC_SONAME, malloc_default_zone);
+
+#define ZONE_FROM_PTR(soname, fnname) \
+ \
+ void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname) ( void* ptr ); \
+ void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname) ( void* ptr ) \
+ { \
+ return &vg_default_zone; \
+ }
+
+ZONE_FROM_PTR(VG_Z_LIBC_SONAME, malloc_zone_from_ptr);
+
+
// GrP fixme bypass libc's use of zone->introspect->check
#define ZONE_CHECK(soname, fnname) \
\
- int VG_REPLACE_FUNCTION_EZU(10220,soname,fnname)(void* zone); \
- int VG_REPLACE_FUNCTION_EZU(10220,soname,fnname)(void* zone) \
+ int VG_REPLACE_FUNCTION_EZU(10230,soname,fnname)(void* zone); \
+ int VG_REPLACE_FUNCTION_EZU(10230,soname,fnname)(void* zone) \
{ \
return 1; \
}
-ZONE_CHECK(VG_Z_LIBC_SONAME, malloc_zone_check);
+//ZONE_CHECK(VG_Z_LIBC_SONAME, malloc_zone_check);
#endif /* defined(VGO_darwin) */
+/*------------------ (startup related) ------------------*/
+
/* All the code in here is unused until this function is called */
__attribute__((constructor))
Modified: trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-darwin.h 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_syswrap/priv_syswrap-darwin.h 2011-09-21 08:43:08 UTC (rev 12043)
@@ -358,18 +358,18 @@
// old new_system_shared_regions
// old shared_region_map_file_np
// old shared_region_make_private_np
-// NYI __pthread_mutex_destroy 301
-// NYI __pthread_mutex_init 302
-// NYI __pthread_mutex_lock 303
-// NYI __pthread_mutex_trylock 304
-// NYI __pthread_mutex_unlock 305
-// NYI __pthread_cond_init 306
-// NYI __pthread_cond_destroy 307
-// NYI __pthread_cond_broadcast 308
+DECL_TEMPLATE(darwin, psynch_mutexwait); // 301 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_mutexdrop); // 302 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_cvbroad); // 303 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_cvsignal); // 304 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_cvwait); // 305 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_rw_rdlock); // 306 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_rw_wrlock); // 307 // new in 10.7 ?
+DECL_TEMPLATE(darwin, psynch_rw_unlock); // 308 // new in 10.7 ?
// NYI __pthread_cond_signal 309
// NYI getsid 310
// NYI settid_with_pid 311
-// NYI __pthread_cond_timedwait 312
+DECL_TEMPLATE(darwin, psynch_cvclrprepost); // 312 // new in 10.7 ?
// NYI aio_fsync 313
DECL_TEMPLATE(darwin, aio_return); // 314
DECL_TEMPLATE(darwin, aio_suspend); // 315
@@ -416,7 +416,9 @@
// NYI setauid 354
// NYI getaudit 355
// NYI setaudit 356
-// NYI getaudit_addr 357
+#if DARWIN_VERS >= DARWIN_10_7
+DECL_TEMPLATE(darwin, getaudit_addr) // 357
+#endif
// NYI setaudit_addr 358
// NYI auditctl 359
DECL_TEMPLATE(darwin, bsdthread_create); // 360
@@ -491,6 +493,7 @@
// NYI audit_session_join 429
// Mach message helpers
+DECL_TEMPLATE(darwin, mach_port_set_context);
DECL_TEMPLATE(darwin, host_info);
DECL_TEMPLATE(darwin, host_page_size);
DECL_TEMPLATE(darwin, host_get_io_master);
@@ -512,6 +515,7 @@
DECL_TEMPLATE(darwin, mach_port_set_attributes);
DECL_TEMPLATE(darwin, mach_port_insert_member);
DECL_TEMPLATE(darwin, task_get_special_port);
+DECL_TEMPLATE(darwin, task_get_exception_ports);
DECL_TEMPLATE(darwin, semaphore_create);
DECL_TEMPLATE(darwin, semaphore_destroy);
DECL_TEMPLATE(darwin, mach_ports_lookup);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c 2011-09-21 08:43:08 UTC (rev 12043)
@@ -30,6 +30,7 @@
#if defined(VGP_amd64_darwin)
+#include "config.h" // DARWIN_VERS
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
@@ -282,7 +283,7 @@
// other values stay where they are in registers
" push $0\n" // fake return address
" jmp _pthread_hijack\n"
- );
+);
@@ -372,7 +373,7 @@
// other values stay where they are in registers
" push $0\n" // fake return address
" jmp _wqthread_hijack\n"
- );
+);
/* wqthread note: The kernel may create or destroy pthreads in the
@@ -401,12 +402,26 @@
lock. */
VG_(acquire_BigLock_LL)("wqthread_hijack");
+ if (0) VG_(printf)("wqthread_hijack: self %#lx, kport %#lx, "
+ "stackaddr %#lx, workitem %#lx, reuse %d, sp %#lx\n",
+ self, kport, stackaddr, workitem, reuse, sp);
+
/* Start the thread with all signals blocked. VG_(scheduler) will
set the mask correctly when we finally get there. */
VG_(sigfillset)(&blockall);
VG_(sigprocmask)(VKI_SIG_SETMASK, &blockall, NULL);
if (reuse) {
+
+ /* For whatever reason, tst->os_state.pthread appear to have a
+ constant offset of 96 on 10.7, but zero on 10.6 and 10.5. No
+ idea why. */
+# if DARWIN_VERS <= DARWIN_10_6
+ UWord magic_delta = 0;
+# elif DARWIN_VERS == DARWIN_10_7
+ UWord magic_delta = 0x60;
+# endif
+
// This thread already exists; we're merely re-entering
// after leaving via workq_ops(WQOPS_THREAD_RETURN).
// Don't allocate any V thread resources.
@@ -416,8 +431,14 @@
vg_assert(mach_thread_self() == kport);
tst = VG_(get_ThreadState)(tid);
+
+ if (0) VG_(printf)("wqthread_hijack reuse %s: tid %d, tst %p, "
+ "tst->os_state.pthread %#lx\n",
+ tst->os_state.pthread == self ? "SAME" : "DIFF",
+ tid, tst, tst->os_state.pthread);
+
vex = &tst->arch.vex;
- vg_assert(tst->os_state.pthread == self);
+ vg_assert(tst->os_state.pthread - magic_delta == self);
}
else {
// This is a new thread.
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c 2011-09-21 08:43:08 UTC (rev 12043)
@@ -4316,7 +4316,80 @@
mach_msg: messages to a task
------------------------------------------------------------------ */
+// JRS 2011-Aug-25: just guessing here. I have no clear idea how
+// these structs are derived. They obviously relate to the various
+// .def files in the xnu sources, and can also be found in some
+// form in /usr/include/mach/*.h, but not sure how these all
+// relate to each other.
+PRE(mach_port_set_context)
+{
+#pragma pack(4)
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ mach_port_name_t name;
+ mach_vm_address_t context;
+ } Request;
+#pragma pack()
+
+ Request *req = (Request *)ARG1;
+
+ PRINT("mach_port_set_context(%s, %s, 0x%llx)",
+ name_for_port(MACH_REMOTE),
+ name_for_port(req->name), req->context);
+
+ AFTER = POST_FN(mach_port_set_context);
+}
+
+POST(mach_port_set_context)
+{
+#pragma pack(4)
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ } Reply;
+#pragma pack()
+}
+
+
+// JRS 2011-Aug-25 FIXME completely bogus
+PRE(task_get_exception_ports)
+{
+#pragma pack(4)
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ exception_mask_t exception_mask;
+ } Request;
+#pragma pack()
+
+ PRINT("task_get_exception_ports(BOGUS)");
+ AFTER = POST_FN(task_get_exception_ports);
+}
+
+POST(task_get_exception_ports)
+{
+#pragma pack(4)
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t old_handlers[32];
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ mach_msg_type_number_t masksCnt;
+ exception_mask_t masks[32];
+ exception_behavior_t old_behaviors[32];
+ thread_state_flavor_t old_flavors[32];
+ } Reply;
+#pragma pack()
+}
+
+
+///////////////////////////////////////////////////
+
PRE(mach_port_type)
{
#pragma pack(4)
@@ -5332,6 +5405,7 @@
//VG_(mprotect_max_range)(start, end-start, prot);
} else {
ML_(notify_core_and_tool_of_mprotect)(start, end-start, prot);
+ VG_(di_notify_vm_protect)(start, end-start, prot);
}
}
} else {
@@ -6752,6 +6826,9 @@
}
}
+// JRS 2011-Aug-25: these magic numbers (3201 etc) come from
+// /usr/include/mach/mach_port.h et al (grep in /usr/include
+// for them)
PRE(mach_msg_task)
{
// message to a task port
@@ -6804,7 +6881,11 @@
case 3227:
CALL_PRE(mach_port_extract_member);
return;
-
+
+ case 3229:
+ CALL_PRE(mach_port_set_context);
+ return;
+
case 3402:
CALL_PRE(task_threads);
return;
@@ -6828,6 +6909,10 @@
case 3412:
CALL_PRE(thread_create_running);
return;
+
+ case 3414:
+ CALL_PRE(task_get_exception_ports);
+ return;
case 3418:
CALL_PRE(semaphore_create);
@@ -7630,6 +7715,103 @@
/* ---------------------------------------------------------------------
+ Added for OSX 10.7 (Lion)
+ ------------------------------------------------------------------ */
+
+PRE(getaudit_addr)
+{
+ PRINT("getaudit_addr(%#lx, %lu)", ARG1, ARG2);
+ PRE_REG_READ1(void*, "auditinfo_addr", int, "length");
+ PRE_MEM_WRITE("getaudit_addr(auditinfo_addr)", ARG1, ARG2);
+}
+POST(getaudit_addr)
+{
+ POST_MEM_WRITE(ARG1, ARG2);
+}
+
+PRE(psynch_mutexwait)
+{
+ PRINT("psynch_mutexwait(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_mutexwait)
+{
+}
+
+PRE(psynch_mutexdrop)
+{
+ PRINT("psynch_mutexdrop(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_mutexdrop)
+{
+}
+
+PRE(psynch_cvbroad)
+{
+ PRINT("psynch_cvbroad(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_cvbroad)
+{
+}
+
+PRE(psynch_cvsignal)
+{
+ PRINT("psynch_cvsignal(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_cvsignal)
+{
+}
+
+PRE(psynch_cvwait)
+{
+ PRINT("psynch_cvwait(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_cvwait)
+{
+}
+
+PRE(psynch_rw_rdlock)
+{
+ PRINT("psynch_rw_rdlock(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_rw_rdlock)
+{
+}
+
+PRE(psynch_rw_wrlock)
+{
+ PRINT("psynch_rw_wrlock(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_rw_wrlock)
+{
+}
+
+PRE(psynch_rw_unlock)
+{
+ PRINT("psynch_rw_unlock(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_rw_unlock)
+{
+}
+
+PRE(psynch_cvclrprepost)
+{
+ PRINT("psynch_cvclrprepost(BOGUS)\n");
+ *flags |= SfMayBlock;
+}
+POST(psynch_cvclrprepost)
+{
+}
+
+
+/* ---------------------------------------------------------------------
syscall tables
------------------------------------------------------------------ */
@@ -7970,18 +8152,18 @@
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(298)), // old new_system_shared_regions
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(299)), // old shared_region_map_file_np
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(300)), // old shared_region_make_private_np
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(301)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(302)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(303)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(304)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(305)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(306)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(307)), // ???
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(308)), // ???
+ MACXY(__NR_psynch_mutexwait, psynch_mutexwait), // 301
+ MACXY(__NR_psynch_mutexdrop, psynch_mutexdrop), // 302
+ MACXY(__NR_psynch_cvbroad, psynch_cvbroad), // 303
+ MACXY(__NR_psynch_cvsignal, psynch_cvsignal), // 304
+ MACXY(__NR_psynch_cvwait, psynch_cvwait), // 305
+ MACXY(__NR_psynch_rw_rdlock, psynch_rw_rdlock), // 306
+ MACXY(__NR_psynch_rw_wrlock, psynch_rw_wrlock), // 307
+ MACXY(__NR_psynch_rw_unlock, psynch_rw_unlock), // 308
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(309)), // ???
// _____(__NR_getsid),
// _____(__NR_settid_with_pid),
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(312)), // ???
+ MACXY(__NR_psynch_cvclrprepost, psynch_cvclrprepost), // 312
// _____(__NR_aio_fsync),
MACXY(__NR_aio_return, aio_return),
MACX_(__NR_aio_suspend, aio_suspend),
@@ -8028,7 +8210,9 @@
// _____(__NR_setauid),
// _____(__NR_getaudit),
// _____(__NR_setaudit),
-// _____(__NR_getaudit_addr),
+#if DARWIN_VERS >= DARWIN_10_7
+ MACXY(__NR_getaudit_addr, getaudit_addr),
+#endif
// _____(__NR_setaudit_addr),
// _____(__NR_auditctl),
MACXY(__NR_bsdthread_create, bsdthread_create), // 360
Modified: trunk/coregrind/pub_core_debuginfo.h
===================================================================
--- trunk/coregrind/pub_core_debuginfo.h 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/coregrind/pub_core_debuginfo.h 2011-09-21 08:43:08 UTC (rev 12043)
@@ -67,6 +67,9 @@
extern void VG_(di_notify_pdb_debuginfo)( Int fd, Addr avma,
SizeT total_size,
PtrdiffT unknown_purpose__reloc );
+
+/* this should also really return ULong */
+extern void VG_(di_notify_vm_protect)( Addr a, SizeT len, UInt prot );
#endif
extern void VG_(di_discard_ALL_debuginfo)( void );
Added: trunk/darwin11.supp
===================================================================
--- trunk/darwin11.supp (rev 0)
+++ trunk/darwin11.supp 2011-09-21 08:43:08 UTC (rev 12043)
@@ -0,0 +1,122 @@
+
+# Suppressions for Darwin 11.x / Mac OS X 10.7 Lion
+
+##----------------------------------------------------------------------##
+# Memcheck
+##----------------------------------------------------------------------##
+
+# Dunno where this is a real bug, or due to borked 10.7-specific syscall
+# wrappers. 64-bit mode; not sure if occurs in 32-bit mode.
+# Anyway, for the tine being:
+#
+# Conditional jump or move depends on uninitialised value(s)
+# at 0x1973E6: __mtx_droplock (in /usr/lib/system/libsystem_c.dylib)
+# by 0x1976AA: pthread_mutex_unlock (in /usr/lib/system/libsystem_c.dylib)
+# by 0x100B3D: unlock_node (in /usr/lib/system/libkeymgr.dylib)
+{
+ OSX107:__mtx_droplock
+ Memcheck:Cond
+ fun:__mtx_droplock
+ fun:pthread_mutex_unlock
+ fun:unlock_node
+}
+
+# Conditional jump or move depends on uninitialised value(s)
+# at 0x2EB883: ??? (in /usr/lib/system/libxpc.dylib)
+# by 0x237C6: ??? (in /usr/lib/libSystem.B.dylib)
+# by 0x8FE1115A: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
+{
+ <insert_a_suppression_name_here>
+ Memcheck:Cond
+ obj:/usr/lib/system/libxpc.dylib
+ obj:/usr/lib/libSystem.B.dylib
+ fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+
+# ZLib stuff. How come this wasn't necessary in 10.6 ?
+{
+ OSX107:zlib-C
+ Memcheck:Cond
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
+}
+{
+ OSX107:zlib-8
+ Memcheck:Value8
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
+}
+
+# Really a bug? I don't know.
+# Conditional jump or move depends on uninitialised value(s)
+# at 0x3A322FE: __mtx_droplock (in /usr/lib/system/libsystem_c.dylib)
+# by 0x3A326AA: pthread_mutex_unlock (in /usr/lib/system/libsystem_c.dylib)
+# by 0x26382: load_images (in /usr/lib/libobjc.A.dylib)
+{
+ OSX107:blah
+ Memcheck:Cond
+ fun:__mtx_droplock
+ fun:pthread_mutex_unlock
+}
+
+{
+ OSX107:blah
+ Memcheck:Cond
+ fun:pthread_mutex_lock
+}
+
+
+
+##########################################################################
+### The ones below are from darwin10.supp (for Snow Leopard). I don't
+### know whether they are still necessary.
+
+# afaict this is legit. Might be caused by setenv("VAR=")
+# where the value string is empty (not sure)
+{
+ macos-Cond-7
+ Memcheck:Cond
+ fun:__setenv
+}
+
+# From Jesse Ruderman.
+#{
+# Mac OS X 10.6.4. rdar://8145289. "new[]" paired with "delete" in the DesktopServicesPriv framework.
+# Memcheck:Free
+# fun:_ZdlPv
+# fun:_ZN5TChar18RemovePtrReferenceEv
+# }
+
+# From Jesse Ruderman.
+#{
+# Mac OS X 10.6.4. rdar://8145318. Uninitialized memory from HIMenuBarView::MeasureAppMenus is used in HIMenuBarView::SetAdjustTextTitleBoundsAtIndex.
+# Memcheck:Cond
+# fun:_ZN13HIMenuBarView31SetAdjustTextTitleBoundsAtIndexEih
+# fun:_ZN13HIMenuBarView15MeasureAppMenusEv
+#}
+
+#{
+# TFontFeatures::TFontFeatures(CGFont*) (in CoreText.framework)
+# Memcheck:Cond
+# fun:_ZN13TFontFeaturesC2EP6CGFont
+# fun:_ZNK9TBaseFont12CopyFeaturesEv
+#}
+
+# See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's
+# unavoidable due to BSD setenv() semantics.
+#{
+# macos-__setenv-leak-see-our-bug-188572
+# Memcheck:Leak
+# fun:malloc_zone_malloc
+# fun:__setenv
+#}
+
+#{
+# libSystem-keymgr-leak-at-exit
+# Memcheck:Leak
+# fun:malloc
+# fun:get_or_create_key_element
+# fun:_keymgr_get_and_lock_processwide_ptr_2
+# fun:__keymgr_initializer
+# fun:libSystem_initializer
+#}
Modified: trunk/include/pub_tool_redir.h
===================================================================
--- trunk/include/pub_tool_redir.h 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/include/pub_tool_redir.h 2011-09-21 08:43:08 UTC (rev 12043)
@@ -31,6 +31,8 @@
#ifndef __PUB_TOOL_REDIR_H
#define __PUB_TOOL_REDIR_H
+#include "config.h" /* DARWIN_VERS */
+
/* The following macros facilitate function replacement and wrapping.
Function wrapping and function replacement are similar but not
@@ -240,10 +242,16 @@
#if defined(VGO_linux)
# define VG_Z_LIBC_SONAME libcZdsoZa // libc.so*
-#elif defined(VGO_darwin)
+
+#elif defined(VGO_darwin) && (DARWIN_VERS <= DARWIN_10_6)
# define VG_Z_LIBC_SONAME libSystemZdZaZddylib // libSystem.*.dylib
+
+#elif defined(VGO_darwin) && (DARWIN_VERS == DARWIN_10_7)
+# define VG_Z_LIBC_SONAME libsystemZucZaZddylib // libsystem_c*.dylib
+
#else
# error "Unknown platform"
+
#endif
/* --- Soname of the GNU C++ library. --- */
Modified: trunk/include/vki/vki-scnums-darwin.h
===================================================================
--- trunk/include/vki/vki-scnums-darwin.h 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/include/vki/vki-scnums-darwin.h 2011-09-21 08:43:08 UTC (rev 12043)
@@ -515,18 +515,18 @@
/* 298 old new_system_shared_regions */
/* 299 old shared_region_map_file_np */
/* 300 old shared_region_make_private_np */
- /* 301 */
- /* 302 */
- /* 303 */
- /* 304 */
- /* 305 */
- /* 306 */
- /* 307 */
- /* 308 */
+#define __NR_psynch_mutexwait VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(301)
+#define __NR_psynch_mutexdrop VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(302)
+#define __NR_psynch_cvbroad VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(303)
+#define __NR_psynch_cvsignal VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(304)
+#define __NR_psynch_cvwait VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(305)
+#define __NR_psynch_rw_rdlock VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(306)
+#define __NR_psynch_rw_wrlock VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(307)
+#define __NR_psynch_rw_unlock VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(308)
/* 309 */
#define __NR_getsid VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(310)
#define __NR_settid_with_pid VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(311)
- /* 312 */
+#define __NR_psynch_cvclrprepost VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(312)
#define __NR_aio_fsync VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(313)
#define __NR_aio_return VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(314)
#define __NR_aio_suspend VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(315)
Modified: trunk/memcheck/mc_replace_strmem.c
===================================================================
--- trunk/memcheck/mc_replace_strmem.c 2011-09-20 22:36:26 UTC (rev 12042)
+++ trunk/memcheck/mc_replace_strmem.c 2011-09-21 08:43:08 UTC (rev 12043)
@@ -178,10 +178,11 @@
STRRCHR(VG_Z_LD_LINUX_SO_2, rindex)
#elif defined(VGO_darwin)
- STRRCHR(VG_Z_LIBC_SONAME, strrchr)
- STRRCHR(VG_Z_LIBC_SONAME, rindex)
- STRRCHR(VG_Z_DYLD, strrchr)
- STRRCHR(VG_Z_DYLD, rindex)
+ //STRRCHR(VG_Z_LIBC_SONAME, strrchr)
+ //STRRCHR(VG_Z_LIBC_SONAME, rindex)
+ //STRRCHR(VG_Z_DYLD, strrchr)
+ //STRRCHR(VG_Z_DYLD, rindex)
+ STRRCHR(VG_Z_LIBC_SONAME, strrchr)
#endif
@@ -214,10 +215,11 @@
# endif
#elif defined(VGO_darwin)
- STRCHR(VG_Z_LIBC_SONAME, strchr)
- STRCHR(VG_Z_LIBC_SONAME, index)
- STRCHR(VG_Z_DYLD, strchr)
- STRCHR(VG_Z_DYLD, index)
+ //STRCHR(VG_Z_LIBC_SONAME, strchr)
+ //STRCHR(VG_Z_LIBC_SONAME, index)
+ //STRCHR(VG_Z_DYLD, strchr)
+ //STRCHR(VG_Z_DYLD, index)
+ STRCHR(VG_Z_LIBC_SONAME, strchr)
#endif
@@ -252,7 +254,7 @@
STRCAT(VG_Z_LIBC_SONAME, __GI_strcat)
#elif defined(VGO_darwin)
- STRCAT(VG_Z_LIBC_SONAME, strcat)
+ //STRCAT(VG_Z_LIBC_SONAME, strcat)
#endif
@@ -288,8 +290,8 @@
STRNCAT(VG_Z_LIBC_SONAME, strncat)
#elif defined(VGO_darwin)
- STRNCAT(VG_Z_LIBC_SONAME, strncat)
- STRNCAT(VG_Z_DYLD, strncat)
+ //STRNCAT(VG_Z_LIBC_SONAME, strncat)
+ //STRNCAT(VG_Z_DYLD, strncat)
#endif
@@ -335,8 +337,9 @@
#if defined(VGO_linux)
#elif defined(VGO_darwin)
+ //STRLCAT(VG_Z_LIBC_SONAME, strlcat)
+ //STRLCAT(VG_Z_DYLD, strlcat)
STRLCAT(VG_Z_LIBC_SONAME, strlcat)
- STRLCAT(VG_Z_DYLD, strlcat)
#endif
@@ -359,7 +362,7 @@
STRNLEN(VG_Z_LIBC_SONAME, __GI_strnlen)
#elif defined(VGO_darwin)
- STRNLEN(VG_Z_LIBC_SONAME, strnlen)
+ //STRNLEN(VG_Z_LIBC_SONAME, strnlen)
#endif
@@ -387,7 +390,8 @@
STRLEN(VG_Z_LIBC_SONAME, __GI_strlen)
#elif defined(VGO_darwin)
- STRLEN(VG_Z_LIBC_SONAME, strlen)
+ //STRLEN(VG_Z_LIBC_SONAME, strlen)
+ STRLEN(VG_Z_LIBC_SONAME, strlen)
#endif
@@ -422,8 +426,9 @@
STRCPY(VG_Z_LIBC_SONAME, __GI_strcpy)
#elif defined(VGO_darwin)
+ //STRCPY(VG_Z_LIBC_SONAME, strcpy)
+ //STRCPY(VG_Z_DYLD, strcpy)
STRCPY(VG_Z_LIBC_SONAME, strcpy)
- STRCPY(VG_Z_DYLD, strcpy)
#endif
@@ -455,8 +460,9 @@
STRNCPY(VG_Z_LIBC_SONAME, __GI_strncpy)
#elif defined(VGO_darwin)
+ //STRNCPY(VG_Z_LIBC_SONAME, strncpy)
+ //STRNCPY(VG_Z_DYLD, strncpy)
STRNCPY(VG_Z_LIBC_SONAME, strncpy)
- STRNCPY(VG_Z_DYLD, strncpy)
#endif
@@ -491,8 +497,9 @@
#if defined(VGO_linux)
#elif defined(VGO_darwin)
+ //STRLCPY(VG_Z_LIBC_SONAME, strlcpy)
+ //STRLCPY(VG_Z_DYLD, strlcpy)
STRLCPY(VG_Z_LIBC_SONAME, strlcpy)
- STRLCPY(VG_Z_DYLD, strlcpy)
#endif
@@ -524,8 +531,9 @@
STRNCMP(VG_Z_LIBC_SONAME, __GI_strncmp)
#elif defined(VGO_darwin)
- STRNCMP(VG_Z_LIBC_SONAME, strncmp)
- STRNCMP(VG_Z_DYLD, strncmp)
+ //STRNCMP(VG_Z_LIBC_SONAME, strncmp)
+ //STRNCMP(VG_Z_DYLD, strncmp)
+ STRNCMP(VG_Z_LIBC_SONAME, strncmp)
#endif
@@ -560,7 +568,7 @@
# endif
#elif defined(VGO_darwin)
- STRCASECMP(VG_Z_LIBC_SONAME, strcasecmp)
+ //STRCASECMP(VG_Z_LIBC_SONAME, strcasecmp)
#endif
@@ -597,8 +605,8 @@
# endif
#elif defined(VGO_darwin)
- STRNCASECMP(VG_Z_LIBC_SONAME, strncasecmp)
- STRNCASECMP(VG_Z_DYLD, strncasecmp)
+ //STRNCASECMP(VG_Z_LIBC_SONAME, strncasecmp)
+ //STRNCASECMP(VG_Z_DYLD, strncasecmp)
#endif
@@ -632,7 +640,7 @@
STRCASECMP_L(VG_Z_LIBC_SONAME, __GI___strcasecmp_l)
#elif defined(VGO_darwin)
- STRCASECMP_L(VG_Z_LIBC_SONAME, strcasecmp_l)
+ //STRCASECMP_L(VG_Z_LIBC_SONAME, strcasecmp_l)
#endif
@@ -667,8 +675,8 @@
STRNCASECMP_L(VG_Z_LIBC_SONAME, __GI_strncasecmp_l)
#elif defined(VGO_darwin)
- STRNCASECMP_L(VG_Z_LIBC_SONAME, strncasecmp_l)
- STRNCASECMP_L(VG_Z_DYLD, strncasecmp_l)
+ //STRNCASECMP_L(VG_Z_LIBC_SONAME, strncasecmp_l)
+ //STRNCASECMP_L(VG_Z_DYLD, strncasecmp_l)
#endif
@@ -702,7 +710,8 @@
STRCMP(VG_Z_LD64_SO_1, strcmp)
#elif defined(VGO_darwin)
- STRCMP(VG_Z_LIBC_SONAME, strcmp)
+ //STRCMP(VG_Z_LIBC_SONAME, strcmp)
+ STRCMP(VG_Z_LIBC_SONAME, strcmp)
#endif
@@ -727,8 +736,8 @@
MEMCHR(VG_Z_LIBC_SONAME, memchr)
#elif defined(VGO_darwin)
- MEMCHR(VG_Z_LIBC_SONAME, memchr)
- MEMCHR(VG_Z_DYLD, memchr)
+ //MEMCHR(VG_Z_LIBC_SONAME, memchr)
+ //MEMCHR(VG_Z_DYLD, memchr)
#endif
@@ -833,8 +842,10 @@
MEMCPY(NONE, ZuintelZufastZumemcpy)
#elif defined(VGO_darwin)
- MEMCPY(VG_Z_LIBC_SONAME, memcpy)
- MEMCPY(VG_Z_DYLD, memcpy)
+ //MEMCPY(VG_Z_LIBC_SONAME, memcpy)
+ //MEMCPY(VG_Z_DYLD, memcpy)
+ MEMCPY(VG_Z_LIBC_SONAME, memcpyZDVARIANTZDsse3x) /* memcpy$VARIANT$sse3x */
+ MEMCPY(VG_Z_LIBC_SONAME, memcpyZDVARIANTZDsse42) /* memcpy$VARIANT$sse42 */
#endif
@@ -872,10 +883,10 @@
MEMCMP(VG_Z_LD_SO_1, bcmp)
#elif defined(VGO_darwin)
- MEMCMP(VG_Z_LIBC_SONAME, memcmp)
- MEMCMP(VG_Z_LIBC_SONAME, bcmp)
- MEMCMP(VG_Z_DYLD, memcmp)
- MEMCMP(VG_Z_DYLD, bcmp)
+ //MEMCMP(VG_Z_LIBC_SONAME, memcmp)
+ //MEMCMP(VG_Z_LIBC_SONAME, bcmp)
+ //MEMCMP(VG_Z_DYLD, memcmp)
+ //MEMCMP(VG_Z_DYLD, bcmp)
#endif
@@ -914,8 +925,8 @@
STPCPY(VG_Z_LD_LINUX_X86_64_SO_2, stpcpy)
#elif defined(VGO_darwin)
- STPCPY(VG_Z_LIBC_SONAME, stpcpy)
- STPCPY(VG_Z_DYLD, stpcpy)
+ //STPCPY(VG_Z_LIBC_SONAME, stpcpy)
+ //STPCPY(VG_Z_DYLD, stpcpy)
#endif
@@ -924,6 +935,7 @@
/* Why are we bothering to intercept this? It seems entirely
pointless. */
+
#define MEMSET(soname, fnname) \
void* VG_REPLACE_FUNCTION_EZU(20210,soname,fnname) \
(void *s, Int c, SizeT n); \
@@ -947,8 +959,9 @@
MEMSET(VG_Z_LIBC_SONAME, memset)
#elif defined(VGO_darwin)
+ //MEMSET(VG_Z_LIBC_SONAME, memset)
+ //MEMSET(VG_Z_DYLD, memset)
MEMSET(VG_Z_LIBC_SONAME, memset)
- MEMSET(VG_Z_DYLD, memset)
#endif
@@ -956,12 +969,15 @@
/*---------------------- memmove ----------------------*/
/* memmove -- use the MEMMOVE defn above. */
+
#if defined(VGO_linux)
MEMMOVE(VG_Z_LIBC_SONAME, memmove)
#elif defined(VGO_darwin)
- MEMMOVE(VG_Z_LIBC_SONAME, memmove)
- MEMMOVE(VG_Z_DYLD, memmove)
+ //MEMMOVE(VG_Z_LIBC_SONAME, memmove)
+ //MEMMOVE(VG_Z_DYLD, memmove)#
+ MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse3x) /* memmove$VARIANT$sse3x */
+ MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse42) /* memmove$VARIANT$sse42 */
#endif
@@ -991,8 +1007,8 @@
#if defined(VGO_linux)
#elif defined(VGO_darwin)
- BCOPY(VG_Z_LIBC_SONAME, bcopy)
- BCOPY(VG_Z_DYLD, bcopy)
+ //BCOPY(VG_Z_LIBC_SONAME, bcopy)
+ //BCOPY(VG_Z_DYLD, bcopy)
#endif
@@ -1198,7 +1214,7 @@
GLIBC25_MEMPCPY(VG_Z_LD_SO_1, mempcpy) /* ld.so.1 */
#elif defined(VGO_darwin)
- GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, mempcpy)
+ //GLIBC25_MEMPCPY(VG_Z_LIBC_SONAME, mempcpy)
#endif
|
|
From: <br...@ac...> - 2011-09-21 08:23:29
|
valgrind revision: 12042 VEX revision: 2201 GCC version: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3) GLIBC version: GNU C Library stable release version 2.3.4, by Roland McGrath et al. uname -mrs: Linux 2.6.9-42.EL s390x Vendor version: Red Hat Enterprise Linux AS release 4 (Nahant Update 4) Nightly build on z900 ( s390x build on z900 ) Started at 2011-09-21 01:42:04 EDT Ended at 2011-09-21 04:29:43 EDT 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 == 465 tests, 19 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/varinfo6 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (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 == 465 tests, 20 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/varinfo6 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/annotate_hb_race (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Sep 21 03:07:05 2011 --- new.short Wed Sep 21 04:29:43 2011 *************** *** 8,10 **** ! == 465 tests, 20 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) --- 8,10 ---- ! == 465 tests, 19 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) *************** *** 26,28 **** helgrind/tests/tc20_verifywrap (stderr) - drd/tests/annotate_hb_race (stderr) drd/tests/tc04_free_lock (stderr) --- 26,27 ---- |
|
From: Rich C. <rc...@wi...> - 2011-09-21 03:06:32
|
Nightly build on ultra ( gcc 4.5.1 Linux 2.6.37.1-1.2-desktop x86_64 )
Started at 2011-09-20 21:30:01 CDT
Ended at 2011-09-20 22:06:22 CDT
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
== 584 tests, 11 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin5-bz2 (stderr)
helgrind/tests/locked_vs_unlocked1_fwd (stderr)
helgrind/tests/locked_vs_unlocked1_rev (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/locked_vs_unlocked3 (stderr)
helgrind/tests/pth_barrier3 (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
exp-sgcheck/tests/bad_percentify (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2011-09-20 21:50:48.182058432 -0500
+++ bad_percentify.stderr.out 2011-09-20 22:06:12.195650237 -0500
@@ -16,7 +16,7 @@
by 0x........: myvprintf_str (bad_percentify.c:187)
by 0x........: VG_debugLog_vprintf (bad_percentify.c:479)
by 0x........: vprintf_to_buf (bad_percentify.c:89)
- by 0x........: vprintf_WRK (bad_percentify.c:102)
+ by 0x........: vprintf_WRK (bad_percentify.c:101)
by 0x........: VG_vprintf (bad_percentify.c:115)
by 0x........: VG_printf (bad_percentify.c:124)
by 0x........: VG_print_translation_stats (bad_percentify.c:622)
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2011-09-20 21:47:38.396567691 -0500
+++ mssnapshot.stderrB.out 2011-09-20 21:58:59.117845328 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=b1d398a5cb1609e7ac1c51a26588e87fc20f753c"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=e23cbc772e670af00bea9874f925e2e61afda713"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=1493bf69b1d671cbad9be1d1b0284fbd9138444b"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked1_fwd.stderr.diff
=================================================
--- locked_vs_unlocked1_fwd.stderr.exp 2011-09-20 21:47:09.624583612 -0500
+++ locked_vs_unlocked1_fwd.stderr.out 2011-09-20 22:03:21.840826980 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked1_rev.stderr.diff
=================================================
--- locked_vs_unlocked1_rev.stderr.exp 2011-09-20 21:47:09.631583852 -0500
+++ locked_vs_unlocked1_rev.stderr.out 2011-09-20 22:03:23.162872174 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2011-09-20 21:47:09.630583818 -0500
+++ locked_vs_unlocked2.stderr.out 2011-09-20 22:03:24.505918085 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked3.stderr.diff
=================================================
--- locked_vs_unlocked3.stderr.exp 2011-09-20 21:47:09.615583304 -0500
+++ locked_vs_unlocked3.stderr.out 2011-09-20 22:03:25.838963654 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/pth_barrier3.stderr.diff
=================================================
--- pth_barrier3.stderr.exp 2011-09-20 21:47:09.619583442 -0500
+++ pth_barrier3.stderr.out 2011-09-20 22:03:26.827997464 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2011-09-20 21:47:09.632583886 -0500
+++ tc06_two_races_xml.stderr.out 2011-09-20 22:03:34.218250094 -0500
@@ -40,17 +40,16 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
- <dir>...</dir>
- <file>clone.S</file>
- <line>...</line>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>do_clone.clone.0</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
- <dir>...</dir>
- <file>createthread.c</file>
- <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -122,12 +121,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -177,12 +170,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -232,12 +219,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -287,12 +268,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2011-09-20 21:48:46.613900837 -0500
+++ err_disable3.stderr.out 2011-09-20 21:59:35.774098559 -0500
@@ -11,8 +11,7 @@
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
by 0x........: child_fn (err_disable3.c:31)
- by 0x........: start_thread (pthread_create.c:300)
- by 0x........: ???
+ by 0x........: start_thread (in /lib64/libpthread-2.11.3.so)
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2011-09-20 21:48:46.584899845 -0500
+++ err_disable4.stderr.out 2011-09-20 21:59:37.172146356 -0500
@@ -1503,1001 +1503,7 @@
at 0x........: err (err_disable4.c:41)
by 0x........: child_fn_2 (err_disable4.c:55)
by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2011-09-20 21:48:37.148577114 -0500
+++ stack_switch.stderr.out 2011-09-20 21:59:52.849682345 -0500
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2011-09-20 21:48:46.627901317 -0500
+++ origin5-bz2.stderr.out 2011-09-20 22:00:16.438488796 -0500
@@ -72,17 +72,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -128,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2011-09-20 21:48:46.598900324 -0500
+++ origin5-bz2.stderr.out 2011-09-20 22:00:16.438488796 -0500
@@ -4,8 +4,7 @@
at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -13,8 +12,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -22,8 +20,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -120,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2011-09-20 21:48:46.580899709 -0500
+++ origin5-bz2.stderr.out 2011-09-20 22:00:16.438488796 -0500
@@ -117,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2011-09-20 21:48:46.640901762 -0500
+++ origin5-bz2.stderr.out 2011-09-20 22:00:16.438488796 -0500
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,8 +27,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -37,8 +38,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -47,8 +49,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -57,8 +60,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -67,8 +71,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -77,8 +82,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -87,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2011-09-20 21:48:46.578899641 -0500
+++ origin5-bz2.stderr.out 2011-09-20 22:00:16.438488796 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,7 +9,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -17,7 +17,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -25,7 +25,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -36,7 +36,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -47,7 +47,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -58,7 +58,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -69,7 +69,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -80,7 +80,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -91,7 +91,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -102,7 +102,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2011-09-20 21:31:04.357784765 -0500
+++ bad_percentify.stderr.out 2011-09-20 21:46:10.355556398 -0500
@@ -16,7 +16,7 @@
by 0x........: myvprintf_str (bad_percentify.c:187)
by 0x........: VG_debugLog_vprintf (bad_percentify.c:479)
by 0x........: vprintf_to_buf (bad_percentify.c:89)
- by 0x........: vprintf_WRK (bad_percentify.c:102)
+ by 0x........: vprintf_WRK (bad_percentify.c:101)
by 0x........: VG_vprintf (bad_percentify.c:115)
by 0x........: VG_printf (bad_percentify.c:124)
by 0x........: VG_print_translation_stats (bad_percentify.c:622)
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2011-09-20 21:30:19.095251172 -0500
+++ mssnapshot.stderrB.out 2011-09-20 21:39:00.070908312 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=b1d398a5cb1609e7ac1c51a26588e87fc20f753c"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=e23cbc772e670af00bea9874f925e2e61afda713"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=1493bf69b1d671cbad9be1d1b0284fbd9138444b"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked1_fwd.stderr.diff
=================================================
--- locked_vs_unlocked1_fwd.stderr.exp 2011-09-20 21:30:16.830174430 -0500
+++ locked_vs_unlocked1_fwd.stderr.out 2011-09-20 21:43:20.304739618 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked1_rev.stderr.diff
=================================================
--- locked_vs_unlocked1_rev.stderr.exp 2011-09-20 21:30:16.837174666 -0500
+++ locked_vs_unlocked1_rev.stderr.out 2011-09-20 21:43:21.625784808 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2011-09-20 21:30:16.836174632 -0500
+++ locked_vs_unlocked2.stderr.out 2011-09-20 21:43:22.944829929 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked3.stderr.diff
=================================================
--- locked_vs_unlocked3.stderr.exp 2011-09-20 21:30:16.821174124 -0500
+++ locked_vs_unlocked3.stderr.out 2011-09-20 21:43:24.263875051 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/pth_barrier3.stderr.diff
=================================================
--- pth_barrier3.stderr.exp 2011-09-20 21:30:16.825174260 -0500
+++ pth_barrier3.stderr.out 2011-09-20 21:43:25.217907687 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2011-09-20 21:30:16.838174700 -0500
+++ tc06_two_races_xml.stderr.out 2011-09-20 21:43:32.447154983 -0500
@@ -40,17 +40,16 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
- <dir>...</dir>
- <file>clone.S</file>
- <line>...</line>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>do_clone.clone.0</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
- <dir>...</dir>
- <file>createthread.c</file>
- <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -122,12 +121,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -177,12 +170,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -232,12 +219,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -287,12 +268,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2011-09-20 21:30:28.934584542 -0500
+++ err_disable3.stderr.out 2011-09-20 21:39:36.875156124 -0500
@@ -11,8 +11,7 @@
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
by 0x........: child_fn (err_disable3.c:31)
- by 0x........: start_thread (pthread_create.c:300)
- by 0x........: ???
+ by 0x........: start_thread (in /lib64/libpthread-2.11.3.so)
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2011-09-20 21:30:28.905583560 -0500
+++ err_disable4.stderr.out 2011-09-20 21:39:38.250202744 -0500
@@ -1503,1001 +1503,7 @@
at 0x........: err (err_disable4.c:41)
by 0x........: child_fn_2 (err_disable4.c:55)
by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2011-09-20 21:30:27.409532872 -0500
+++ stack_switch.stderr.out 2011-09-20 21:39:53.899733343 -0500
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2011-09-20 21:30:28.948585016 -0500
+++ origin5-bz2.stderr.out 2011-09-20 21:40:16.749508085 -0500
@@ -72,17 +72,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -128,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2011-09-20 21:30:28.918584000 -0500
+++ origin5-bz2.stderr.out 2011-09-20 21:40:16.749508085 -0500
@@ -4,8 +4,7 @@
at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -13,8 +12,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -22,8 +20,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -120,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2011-09-20 21:30:28.901583424 -0500
+++ origin5-bz2.stderr.out 2011-09-20 21:40:16.749508085 -0500
@@ -117,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2011-09-20 21:30:28.960585424 -0500
+++ origin5-bz2.stderr.out 2011-09-20 21:40:16.749508085 -0500
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,8 +27,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -37,8 +38,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -47,8 +49,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -57,8 +60,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -67,8 +71,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -77,8 +82,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -87,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2011-09-20 21:30:28.899583356 -0500
+++ origin5-bz2.stderr.out 2011-09-20 21:40:16.749508085 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,7 +9,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -17,7 +17,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -25,7 +25,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -36,7 +36,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -47,7 +47,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -58,7 +58,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -69,7 +69,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -80,7 +80,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -91,7 +91,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -102,7 +102,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|