blob: 855e29881eff6b802bb30640b553bd77e57bde52 [file] [log] [blame]
jseward43230652003-12-14 00:14:54 +00001
2Unstable (cvs head) release 2.1.0 (15 December 2003)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
5(Julian). It looks eminently usable, and given that it fixes some
6significant bugs, may well be worth using on a day-to-day basis.
72.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
88.2, RedHat 8.
9
102.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
11handling of system calls and signals, and their interaction with
12threads. In general, the accuracy of the system call, thread and
13signal simulations is much improved. Specifically:
14
15- Blocking system calls behave exactly as they do when running
16 natively (not on valgrind). That is, if a syscall blocks only the
17 calling thread when running natively, than it behaves the same on
18 valgrind. No more mysterious hangs because V doesn't know that some
19 syscall or other, should block only the calling thread.
20
21- Interrupted syscalls should now give more faithful results.
22
23- Finally, signal contexts in signal handlers are supported. As a
24 result, konqueror on SuSE 9 no longer segfaults when notified of
25 file changes in directories it is watching.
26
27Other changes:
28
29- Robert Walsh's file descriptor leakage checks. When enabled,
30 Valgrind will print out a list of open file descriptors on
31 exit. Along with each file descriptor, Valgrind prints out a stack
32 backtrace of where the file was opened and any details relating to the
33 file descriptor such as the file name or socket details.
34 To use, give: --track-fds=yes
35
36- Implemented a few more SSE/SSE2 instructions.
37
38- Less crud on the stack when you do 'where' inside a GDB attach.
39
40- Fixed the following bugs:
41 68360: Valgrind does not compile against 2.6.0-testX kernels
42 68525: CVS head doesn't compile on C90 compilers
43 68566: pkgconfig support (wishlist)
44 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
45 69140: valgrind not able to explicitly specify a path to a binary.
46 69432: helgrind asserts encountering a MutexErr when there are
47 EraserErr suppressions
48
jseward0b12daf2003-12-14 14:35:28 +000049- Increase the max size of the translation cache from 200k average bbs
50 to 300k average bbs. Programs on the size of OOo (680m17) are
51 thrashing the cache at the smaller size, creating large numbers of
52 retranslations and wasting significant time as a result.
53
jseward43230652003-12-14 00:14:54 +000054
55
56Stable release 2.0.0 (5 Nov 2003)
57~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58
592.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
60improves support for SuSE 9 and the Red Hat "Severn" beta.
61
62- Further improvements to SSE/SSE2 support. The entire test suite of
63 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
64 20030307Z '-g -O -xW' now works. I think this gives pretty good
65 coverage of SSE/SSE2 floating point instructions, or at least the
66 subset emitted by Icc.
67
68- Also added support for the following instructions:
69 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
70 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
71
72- CFI support for GDB version 6. Needed to enable newer GDBs
73 to figure out where they are when using --gdb-attach=yes.
74
75- Fix this:
76 mc_translate.c:1091 (memcheck_instrument): Assertion
77 `u_in->size == 4 || u_in->size == 16' failed.
78
79- Return an error rather than panicing when given a bad socketcall.
80
81- Fix checking of syscall rt_sigtimedwait().
82
83- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
84
85- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
86 bytes long, when it could be shorter, which could cause false
87 positives.
88
89- Support use of select() for very large numbers of file descriptors.
90
91- Don't fail silently if the executable is statically linked, or is
92 setuid/setgid. Print an error message instead.
93
94- Support for old DWARF-1 format line number info.
95
96
97
98Snapshot 20031012 (12 October 2003)
99~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100
101Three months worth of bug fixes, roughly. Most significant single
102change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
103
10420031012 builds on Red Hat Fedora ("Severn") but doesn't really work
105(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
106get a working version out soon. It may or may not work ok on the
107forthcoming SuSE 9; I hear positive noises about it but haven't been
108able to verify this myself (not until I get hold of a copy of 9).
109
110A detailed list of changes, in no particular order:
111
112- Describe --gen-suppressions in the FAQ.
113
114- Syscall __NR_waitpid supported.
115
116- Minor MMX bug fix.
117
118- -v prints program's argv[] at startup.
119
120- More glibc-2.3 suppressions.
121
122- Suppressions for stack underrun bug(s) in the c++ support library
123 distributed with Intel Icc 7.0.
124
125- Fix problems reading /proc/self/maps.
126
127- Fix a couple of messages that should have been suppressed by -q,
128 but weren't.
129
130- Make Addrcheck understand "Overlap" suppressions.
131
132- At startup, check if program is statically linked and bail out if so.
133
134- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
135
136- Memcheck/addrcheck: minor speed optimisations
137
138- Handle syscall __NR_brk more correctly than before.
139
140- Fixed incorrect allocate/free mismatch errors when using
141 operator new(unsigned, std::nothrow_t const&)
142 operator new[](unsigned, std::nothrow_t const&)
143
144- Support POSIX pthread spinlocks.
145
146- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000147
148- Implemented more opcodes:
149 - push %es
150 - push %ds
151 - pop %es
152 - pop %ds
153 - movntq
154 - sfence
155 - pshufw
156 - pavgb
157 - ucomiss
158 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000159 - mov imm32, %esp
160 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000161 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000162 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000163
jseward43230652003-12-14 00:14:54 +0000164- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000165
sewardj90238792003-05-05 00:23:42 +0000166
sewardj945f39f2003-07-25 21:11:40 +0000167Snapshot 20030725 (25 July 2003)
168~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169
170Fixes some minor problems in 20030716.
171
172- Fix bugs in overlap checking for strcpy/memcpy etc.
173
174- Do overlap checking with Addrcheck as well as Memcheck.
175
176- Fix this:
177 Memcheck: the `impossible' happened:
178 get_error_name: unexpected type
179
180- Install headers needed to compile new skins.
181
sewardje3dd2e02003-07-27 08:04:48 +0000182- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000183 passed to non-traced children.
184
sewardjb9eda952003-07-26 21:39:05 +0000185- Fix file descriptor leak in valgrind-listener.
186
sewardje3dd2e02003-07-27 08:04:48 +0000187- Fix longstanding bug in which the allocation point of a
188 block resized by realloc was not correctly set. This may
189 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000190
191
sewardj626fd892003-07-16 20:10:26 +0000192Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000193~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
194
sewardj626fd892003-07-16 20:10:26 +000019520030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000196This is the branch which will become valgrind-2.0. It contains
197significant enhancements over the 1.9.X branch.
198
199Despite this being a snapshot of the CVS head, it is believed to be
200quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
201-- and therefore suitable for widespread use. Please let us know asap
202if it causes problems for you.
203
204Two reasons for releasing a snapshot now are:
205
206- It's been a while since 1.9.6, and this snapshot fixes
207 various problems that 1.9.6 has with threaded programs
208 on glibc-2.3.X based systems.
209
210- So as to make available improvements in the 2.0 line.
211
sewardj626fd892003-07-16 20:10:26 +0000212Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000213
214- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
215 systems (SuSE 8.2, Red Hat 9). If you have had problems
216 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000217 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000218 matters. This snapshot seems stable enough to run OpenOffice.org
219 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
220 threaded app if ever I saw one.
221
222- Automatic generation of suppression records; you no longer
223 need to write them by hand. Use --gen-suppressions=yes.
224
sewardj21511802003-07-22 17:47:42 +0000225- strcpy/memcpy/etc check their arguments for overlaps, when
226 running with the Memcheck or Addrcheck skins.
227
228- malloc_usable_size() is now supported.
229
230- new client requests:
231 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
232 useful with regression testing
233 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
234 on real CPU (use with caution!)
235
sewardj9d916ed2003-07-14 23:38:40 +0000236- The GDB attach mechanism is more flexible. Allow the GDB to
237 be run to be specified by --gdb-path=/path/to/gdb, and specify
238 which file descriptor V will read its input from with
239 --input-fd=<number>.
240
sewardj21511802003-07-22 17:47:42 +0000241- Cachegrind gives more accurate results (wasn't tracking instructions in
242 malloc() and friends previously, is now).
243
sewardj9d916ed2003-07-14 23:38:40 +0000244- Complete support for the MMX instruction set.
245
246- Partial support for the SSE and SSE2 instruction sets. Work for this
247 is ongoing. About half the SSE/SSE2 instructions are done, so
248 some SSE based programs may work. Currently you need to specify
249 --skin=addrcheck. Basically not suitable for real use yet.
250
251- Significant speedups (10%-20%) for standard memory checking.
252
253- Fix assertion failure in pthread_once().
254
255- Fix this:
256 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
257 Assertion `ms_end >= ms_now' failed.
258
259- Implement pthread_mutexattr_setpshared.
260
261- Understand Pentium 4 branch hints. Also implemented a couple more
262 obscure x86 instructions.
263
264- Lots of other minor bug fixes.
265
sewardj626fd892003-07-16 20:10:26 +0000266- We have a decent regression test system, for the first time.
267 This doesn't help you directly, but it does make it a lot easier
268 for us to track the quality of the system, especially across
269 multiple linux distributions.
270
271 You can run the regression tests with 'make regtest' after 'make
272 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
273
274 == 84 tests, 0 stderr failures, 0 stdout failures ==
275
276 On Red Hat 8, I get this:
277
278 == 84 tests, 2 stderr failures, 1 stdout failure ==
279 corecheck/tests/res_search (stdout)
280 memcheck/tests/sigaltstack (stderr)
281
282 sigaltstack is probably harmless. res_search doesn't work
283 on R H 8 even running natively, so I'm not too worried.
284
285 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
286
287 == 84 tests, 2 stderr failures, 1 stdout failure ==
288 corecheck/tests/pth_atfork1 (stdout)
289 corecheck/tests/pth_atfork1 (stderr)
290 memcheck/tests/sigaltstack (stderr)
291
292 You need to run on a PII system, at least, since some tests
293 contain P6-specific instructions, and the test machine needs
294 access to the internet so that corecheck/tests/res_search
295 (a test that the DNS resolver works) can function.
296
sewardj9d916ed2003-07-14 23:38:40 +0000297As ever, thanks for the vast amount of feedback :) and bug reports :(
298We may not answer all messages, but we do at least look at all of
299them, and tend to fix the most frequently reported bugs.
300
301
302
sewardj37918822003-05-05 01:05:09 +0000303Version 1.9.6 (7 May 2003 or thereabouts)
304~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305
306Major changes in 1.9.6:
307
308- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
309 RedHat 9, to name but two ...) It turned out that 1.9.5
310 had problems with threading support on glibc >= 2.3.2,
311 usually manifested by threaded programs deadlocking in system calls,
312 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
313 is the first valgrind which gives reasonable support for
314 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
315
316- Majorly expanded FAQ.txt. We've added workarounds for all
317 common problems for which a workaround is known.
318
319Minor changes in 1.9.6:
320
321- Fix identification of the main thread's stack. Incorrect
322 identification of it was causing some on-stack addresses to not get
323 identified as such. This only affected the usefulness of some error
324 messages; the correctness of the checks made is unchanged.
325
326- Support for kernels >= 2.5.68.
327
328- Dummy implementations of __libc_current_sigrtmin,
329 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
330 good enough to keep alive programs which previously died for lack of
331 them.
332
333- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
334
sewardj3d47b792003-05-05 22:15:35 +0000335- Fix bug in the DWARF2 debug line info loader, when instructions
336 following each other have source lines far from each other
337 (e.g. with inlined functions).
338
sewardj37918822003-05-05 01:05:09 +0000339- Debug info reading: read symbols from both "symtab" and "dynsym"
340 sections, rather than merely from the one that comes last in the
341 file.
342
343- New syscall support: prctl(), creat(), lookup_dcookie().
344
345- When checking calls to accept(), recvfrom(), getsocketopt(),
346 don't complain if buffer values are NULL.
347
348- Try and avoid assertion failures in
349 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
350
351- Minor bug fixes in cg_annotate.
352
353
354
sewardj90238792003-05-05 00:23:42 +0000355Version 1.9.5 (7 April 2003)
356~~~~~~~~~~~~~~~~~~~~~~~~~~~~
357
358It occurs to me that it would be helpful for valgrind users to record
359in the source distribution the changes in each release. So I now
360attempt to mend my errant ways :-) Changes in this and future releases
361will be documented in the NEWS file in the source distribution.
362
363Major changes in 1.9.5:
364
365- (Critical bug fix): Fix a bug in the FPU simulation. This was
366 causing some floating point conditional tests not to work right.
367 Several people reported this. If you had floating point code which
368 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
369
370- Partial support for Red Hat 9. RH9 uses the new Native Posix
371 Threads Library (NPTL), instead of the older LinuxThreads.
372 This potentially causes problems with V which will take some
373 time to correct. In the meantime we have partially worked around
374 this, and so 1.9.5 works on RH9. Threaded programs still work,
375 but they may deadlock, because some system calls (accept, read,
376 write, etc) which should be nonblocking, in fact do block. This
377 is a known bug which we are looking into.
378
379 If you can, your best bet (unfortunately) is to avoid using
380 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
381 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
382
383Minor changes in 1.9.5:
384
385- Added some #errors to valgrind.h to ensure people don't include
386 it accidentally in their sources. This is a change from 1.0.X
387 which was never properly documented. The right thing to include
388 is now memcheck.h. Some people reported problems and strange
389 behaviour when (incorrectly) including valgrind.h in code with
390 1.9.1 -- 1.9.4. This is no longer possible.
391
392- Add some __extension__ bits and pieces so that gcc configured
393 for valgrind-checking compiles even with -Werror. If you
394 don't understand this, ignore it. Of interest to gcc developers
395 only.
396
397- Removed a pointless check which caused problems interworking
398 with Clearcase. V would complain about shared objects whose
399 names did not end ".so", and refuse to run. This is now fixed.
400 In fact it was fixed in 1.9.4 but not documented.
401
402- Fixed a bug causing an assertion failure of "waiters == 1"
403 somewhere in vg_scheduler.c, when running large threaded apps,
404 notably MySQL.
405
406- Add support for the munlock system call (124).
407
408Some comments about future releases:
409
4101.9.5 is, we hope, the most stable Valgrind so far. It pretty much
411supersedes the 1.0.X branch. If you are a valgrind packager, please
412consider making 1.9.5 available to your users. You can regard the
4131.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
414are no plans at all for further releases of the 1.0.X branch.
415
416If you want a leading-edge valgrind, consider building the cvs head
417(from SourceForge), or getting a snapshot of it. Current cool stuff
418going in includes MMX support (done); SSE/SSE2 support (in progress),
419a significant (10-20%) performance improvement (done), and the usual
420large collection of minor changes. Hopefully we will be able to
421improve our NPTL support, but no promises.
422