blob: 838fe99a857b4c315d63de9b62e2029bdd3a8c51 [file] [log] [blame]
sewardj90238792003-05-05 00:23:42 +00001
sewardj945f39f2003-07-25 21:11:40 +00002Snapshot 20030725 (25 July 2003)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5Fixes some minor problems in 20030716.
6
7- Fix bugs in overlap checking for strcpy/memcpy etc.
8
9- Do overlap checking with Addrcheck as well as Memcheck.
10
11- Fix this:
12 Memcheck: the `impossible' happened:
13 get_error_name: unexpected type
14
15- Install headers needed to compile new skins.
16
17- Remove leading spaces and
18 colon created by this mechanism in the LD_LIBRARY_PATH / LD_PRELOAD
19 passed to non-traced children.
20
21
22
sewardj626fd892003-07-16 20:10:26 +000023Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +000024~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
sewardj626fd892003-07-16 20:10:26 +00002620030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +000027This is the branch which will become valgrind-2.0. It contains
28significant enhancements over the 1.9.X branch.
29
30Despite this being a snapshot of the CVS head, it is believed to be
31quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
32-- and therefore suitable for widespread use. Please let us know asap
33if it causes problems for you.
34
35Two reasons for releasing a snapshot now are:
36
37- It's been a while since 1.9.6, and this snapshot fixes
38 various problems that 1.9.6 has with threaded programs
39 on glibc-2.3.X based systems.
40
41- So as to make available improvements in the 2.0 line.
42
sewardj626fd892003-07-16 20:10:26 +000043Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +000044
45- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
46 systems (SuSE 8.2, Red Hat 9). If you have had problems
47 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +000048 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +000049 matters. This snapshot seems stable enough to run OpenOffice.org
50 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
51 threaded app if ever I saw one.
52
53- Automatic generation of suppression records; you no longer
54 need to write them by hand. Use --gen-suppressions=yes.
55
sewardj21511802003-07-22 17:47:42 +000056- strcpy/memcpy/etc check their arguments for overlaps, when
57 running with the Memcheck or Addrcheck skins.
58
59- malloc_usable_size() is now supported.
60
61- new client requests:
62 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
63 useful with regression testing
64 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
65 on real CPU (use with caution!)
66
sewardj9d916ed2003-07-14 23:38:40 +000067- The GDB attach mechanism is more flexible. Allow the GDB to
68 be run to be specified by --gdb-path=/path/to/gdb, and specify
69 which file descriptor V will read its input from with
70 --input-fd=<number>.
71
sewardj21511802003-07-22 17:47:42 +000072- Cachegrind gives more accurate results (wasn't tracking instructions in
73 malloc() and friends previously, is now).
74
sewardj9d916ed2003-07-14 23:38:40 +000075- Complete support for the MMX instruction set.
76
77- Partial support for the SSE and SSE2 instruction sets. Work for this
78 is ongoing. About half the SSE/SSE2 instructions are done, so
79 some SSE based programs may work. Currently you need to specify
80 --skin=addrcheck. Basically not suitable for real use yet.
81
82- Significant speedups (10%-20%) for standard memory checking.
83
84- Fix assertion failure in pthread_once().
85
86- Fix this:
87 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
88 Assertion `ms_end >= ms_now' failed.
89
90- Implement pthread_mutexattr_setpshared.
91
92- Understand Pentium 4 branch hints. Also implemented a couple more
93 obscure x86 instructions.
94
95- Lots of other minor bug fixes.
96
sewardj626fd892003-07-16 20:10:26 +000097- We have a decent regression test system, for the first time.
98 This doesn't help you directly, but it does make it a lot easier
99 for us to track the quality of the system, especially across
100 multiple linux distributions.
101
102 You can run the regression tests with 'make regtest' after 'make
103 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
104
105 == 84 tests, 0 stderr failures, 0 stdout failures ==
106
107 On Red Hat 8, I get this:
108
109 == 84 tests, 2 stderr failures, 1 stdout failure ==
110 corecheck/tests/res_search (stdout)
111 memcheck/tests/sigaltstack (stderr)
112
113 sigaltstack is probably harmless. res_search doesn't work
114 on R H 8 even running natively, so I'm not too worried.
115
116 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
117
118 == 84 tests, 2 stderr failures, 1 stdout failure ==
119 corecheck/tests/pth_atfork1 (stdout)
120 corecheck/tests/pth_atfork1 (stderr)
121 memcheck/tests/sigaltstack (stderr)
122
123 You need to run on a PII system, at least, since some tests
124 contain P6-specific instructions, and the test machine needs
125 access to the internet so that corecheck/tests/res_search
126 (a test that the DNS resolver works) can function.
127
sewardj9d916ed2003-07-14 23:38:40 +0000128As ever, thanks for the vast amount of feedback :) and bug reports :(
129We may not answer all messages, but we do at least look at all of
130them, and tend to fix the most frequently reported bugs.
131
132
133
sewardj37918822003-05-05 01:05:09 +0000134Version 1.9.6 (7 May 2003 or thereabouts)
135~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136
137Major changes in 1.9.6:
138
139- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
140 RedHat 9, to name but two ...) It turned out that 1.9.5
141 had problems with threading support on glibc >= 2.3.2,
142 usually manifested by threaded programs deadlocking in system calls,
143 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
144 is the first valgrind which gives reasonable support for
145 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
146
147- Majorly expanded FAQ.txt. We've added workarounds for all
148 common problems for which a workaround is known.
149
150Minor changes in 1.9.6:
151
152- Fix identification of the main thread's stack. Incorrect
153 identification of it was causing some on-stack addresses to not get
154 identified as such. This only affected the usefulness of some error
155 messages; the correctness of the checks made is unchanged.
156
157- Support for kernels >= 2.5.68.
158
159- Dummy implementations of __libc_current_sigrtmin,
160 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
161 good enough to keep alive programs which previously died for lack of
162 them.
163
164- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
165
sewardj3d47b792003-05-05 22:15:35 +0000166- Fix bug in the DWARF2 debug line info loader, when instructions
167 following each other have source lines far from each other
168 (e.g. with inlined functions).
169
sewardj37918822003-05-05 01:05:09 +0000170- Debug info reading: read symbols from both "symtab" and "dynsym"
171 sections, rather than merely from the one that comes last in the
172 file.
173
174- New syscall support: prctl(), creat(), lookup_dcookie().
175
176- When checking calls to accept(), recvfrom(), getsocketopt(),
177 don't complain if buffer values are NULL.
178
179- Try and avoid assertion failures in
180 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
181
182- Minor bug fixes in cg_annotate.
183
184
185
sewardj90238792003-05-05 00:23:42 +0000186Version 1.9.5 (7 April 2003)
187~~~~~~~~~~~~~~~~~~~~~~~~~~~~
188
189It occurs to me that it would be helpful for valgrind users to record
190in the source distribution the changes in each release. So I now
191attempt to mend my errant ways :-) Changes in this and future releases
192will be documented in the NEWS file in the source distribution.
193
194Major changes in 1.9.5:
195
196- (Critical bug fix): Fix a bug in the FPU simulation. This was
197 causing some floating point conditional tests not to work right.
198 Several people reported this. If you had floating point code which
199 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
200
201- Partial support for Red Hat 9. RH9 uses the new Native Posix
202 Threads Library (NPTL), instead of the older LinuxThreads.
203 This potentially causes problems with V which will take some
204 time to correct. In the meantime we have partially worked around
205 this, and so 1.9.5 works on RH9. Threaded programs still work,
206 but they may deadlock, because some system calls (accept, read,
207 write, etc) which should be nonblocking, in fact do block. This
208 is a known bug which we are looking into.
209
210 If you can, your best bet (unfortunately) is to avoid using
211 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
212 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
213
214Minor changes in 1.9.5:
215
216- Added some #errors to valgrind.h to ensure people don't include
217 it accidentally in their sources. This is a change from 1.0.X
218 which was never properly documented. The right thing to include
219 is now memcheck.h. Some people reported problems and strange
220 behaviour when (incorrectly) including valgrind.h in code with
221 1.9.1 -- 1.9.4. This is no longer possible.
222
223- Add some __extension__ bits and pieces so that gcc configured
224 for valgrind-checking compiles even with -Werror. If you
225 don't understand this, ignore it. Of interest to gcc developers
226 only.
227
228- Removed a pointless check which caused problems interworking
229 with Clearcase. V would complain about shared objects whose
230 names did not end ".so", and refuse to run. This is now fixed.
231 In fact it was fixed in 1.9.4 but not documented.
232
233- Fixed a bug causing an assertion failure of "waiters == 1"
234 somewhere in vg_scheduler.c, when running large threaded apps,
235 notably MySQL.
236
237- Add support for the munlock system call (124).
238
239Some comments about future releases:
240
2411.9.5 is, we hope, the most stable Valgrind so far. It pretty much
242supersedes the 1.0.X branch. If you are a valgrind packager, please
243consider making 1.9.5 available to your users. You can regard the
2441.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
245are no plans at all for further releases of the 1.0.X branch.
246
247If you want a leading-edge valgrind, consider building the cvs head
248(from SourceForge), or getting a snapshot of it. Current cool stuff
249going in includes MMX support (done); SSE/SSE2 support (in progress),
250a significant (10-20%) performance improvement (done), and the usual
251large collection of minor changes. Hopefully we will be able to
252improve our NPTL support, but no promises.
253