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