blob: 925dd521426cb0a62b909057c1889442e8c23107 [file] [log] [blame]
jseward43230652003-12-14 00:14:54 +00001
jseward34ed74f2004-08-30 18:04:42 +00002Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jseward7d180d92004-08-30 18:15:37 +000042.2.0 brings nine months worth of improvements and bug fixes. We
5believe it to be a worthy successor to 2.0.0. There are literally
6hundreds of bug fixes and minor improvements. There are also some
7fairly major user-visible changes:
8
9* A complete overhaul of handling of system calls and signals, and
10 their interaction with threads. In general, the accuracy of the
11 system call, thread and signal simulations is much improved:
12
13 - Blocking system calls behave exactly as they do when running
14 natively (not on valgrind). That is, if a syscall blocks only the
15 calling thread when running natively, than it behaves the same on
16 valgrind. No more mysterious hangs because V doesn't know that some
17 syscall or other, should block only the calling thread.
18
19 - Interrupted syscalls should now give more faithful results.
20
21 - Signal contexts in signal handlers are supported.
22
23* Improvements to NPTL support to the extent that V now works
24 properly on NPTL-only setups.
25
26* Greater isolation between Valgrind and the program being run, so
27 the program is less likely to inadvertently kill Valgrind by
28 doing wild writes.
29
30* Massif: a new space profiling tool. Try it! It's cool, and it'll
31 tell you in detail where and when your C/C++ code is allocating heap.
32 Draws pretty .ps pictures of memory use against time. A potentially
33 powerful tool for making sense of your program's space use.
34
35* File descriptor leakage checks. When enabled, Valgrind will print out
36 a list of open file descriptors on exit.
37
38* Improved SSE2/SSE3 support.
39
jseward34ed74f2004-08-30 18:04:42 +000040
41
42Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
442.2.0 is not much different from 2.1.2, released seven weeks ago.
45A number of bugs have been fixed, most notably #85658, which gave
46problems for quite a few people. There have been many internal
47cleanups, but those are not user visible.
48
49The following bugs have been fixed since 2.1.2:
50
5185658 Assert in coregrind/vg_libpthread.c:2326 (open64) !=
52 (void*)0 failed
53 This bug was reported multiple times, and so the following
54 duplicates of it are also fixed: 87620, 85796, 85935, 86065,
55 86919, 86988, 87917, 88156
56
5780716 Semaphore mapping bug caused by unmap (sem_destroy)
58 (Was fixed prior to 2.1.2)
59
6086987 semctl and shmctl syscalls family is not handled properly
61
6286696 valgrind 2.1.2 + RH AS2.1 + librt
63
6486730 valgrind locks up at end of run with assertion failure
65 in __pthread_unwind
66
6786641 memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
68 (also fixes 74298, a duplicate of this)
69
7085947 MMX/SSE unhandled instruction 'sfence'
71
7284978 Wrong error "Conditional jump or move depends on
73 uninitialised value" resulting from "sbbl %reg, %reg"
74
7586254 ssort() fails when signed int return type from comparison is
76 too small to handle result of unsigned int subtraction
77
7887089 memalign( 4, xxx) makes valgrind assert
79
8086407 Add partial support for the low-level parallel port driver ioctls.
81
8270587 Add timestamps to Valgrind output? (wishlist)
83
8484937 vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
85 (fixed prior to 2.1.2)
86
8786317 cannot load libSDL-1.2.so.0 using valgrind
88
8986989 memcpy from mac_replace_strmem.c complains about
90 uninitialized pointers passed when length to copy is zero
91
9285811 gnu pascal symbol causes segmentation fault; ok in 2.0.0
93
9479138 writing to sbrk()'d memory causes segfault
95
9677369 sched deadlock while signal received during pthread_join
97 and the joined thread exited
98
9988115 In signal handler for SIGFPE, siginfo->si_addr is wrong
100 under Valgrind
101
10278765 Massif crashes on app exit if FP exceptions are enabled
103
104Additionally there are the following changes, which are not
105connected to any bug report numbers, AFAICS:
106
107* Fix scary bug causing mis-identification of SSE stores vs
108 loads and so causing memcheck to sometimes give nonsense results
109 on SSE code.
110
111* Add support for the POSIX message queue system calls.
112
113* Fix to allow 32-bit Valgrind to run on AMD64 boxes. Note: this does
114 NOT allow Valgrind to work with 64-bit executables - only with 32-bit
115 executables on an AMD64 box.
116
117* At configure time, only check whether linux/mii.h can be processed
118 so that we don't generate ugly warnings by trying to compile it.
119
120
121
jseward9cd978c2004-07-17 13:38:12 +0000122Developer (cvs head) release 2.1.2 (18 July 2004)
jsewardbd0a6e42004-07-17 12:19:43 +0000123~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1242.1.2 contains four months worth of bug fixes and refinements.
jseward9cd978c2004-07-17 13:38:12 +0000125Although officially a developer release, we believe it to be stable
126enough for widespread day-to-day use. 2.1.2 is pretty good, so try it
127first, although there is a chance it won't work. If so then try 2.0.0
128and tell us what went wrong." 2.1.2 fixes a lot of problems present
129in 2.0.0 and is generally a much better product.
jsewardbd0a6e42004-07-17 12:19:43 +0000130
jseward9cd978c2004-07-17 13:38:12 +0000131Relative to 2.1.1, a large number of minor problems with 2.1.1 have
132been fixed, and so if you use 2.1.1 you should try 2.1.2. Users of
133the last stable release, 2.0.0, might also want to try this release.
jsewardbd0a6e42004-07-17 12:19:43 +0000134
135The following bugs, and probably many more, have been fixed. These
136are listed at http://bugs.kde.org. Reporting a bug for valgrind in
137the http://bugs.kde.org is much more likely to get you a fix than
138mailing developers directly, so please continue to keep sending bugs
139there.
140
14176869 Crashes when running any tool under Fedora Core 2 test1
142 This fixes the problem with returning from a signal handler
jseward0400d4d2004-07-17 23:26:46 +0000143 when VDSOs are turned off in FC2.
jsewardbd0a6e42004-07-17 12:19:43 +0000144
jseward0400d4d2004-07-17 23:26:46 +000014569508 java 1.4.2 client fails with erroneous "stack size too small".
146 This fix makes more of the pthread stack attribute related
147 functions work properly. Java still doesn't work though.
jsewardbd0a6e42004-07-17 12:19:43 +0000148
14971906 malloc alignment should be 8, not 4
150 All memory returned by malloc/new etc is now at least
151 8-byte aligned.
152
jsewarda6017a42004-07-17 23:44:35 +000015381970 vg_alloc_ThreadState: no free slots available
154 (closed because the workaround is simple: increase
155 VG_N_THREADS, rebuild and try again.)
156
jsewardbd0a6e42004-07-17 12:19:43 +000015778514 Conditional jump or move depends on uninitialized value(s)
158 (a slight mishanding of FP code in memcheck)
159
jsewarda6017a42004-07-17 23:44:35 +000016077952 pThread Support (crash) (due to initialisation-ordering probs)
161 (also 85118)
162
jsewardbd0a6e42004-07-17 12:19:43 +000016380942 Addrcheck wasn't doing overlap checking as it should.
16478048 return NULL on malloc/new etc failure, instead of asserting
16573655 operator new() override in user .so files often doesn't get picked up
16683060 Valgrind does not handle native kernel AIO
16769872 Create proper coredumps after fatal signals
16882026 failure with new glibc versions: __libc_* functions are not exported
16970344 UNIMPLEMENTED FUNCTION: tcdrain
17081297 Cancellation of pthread_cond_wait does not require mutex
17182872 Using debug info from additional packages (wishlist)
17283025 Support for ioctls FIGETBSZ and FIBMAP
17383340 Support for ioctl HDIO_GET_IDENTITY
17479714 Support for the semtimedop system call.
17577022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
17682098 hp2ps ansification (wishlist)
17783573 Valgrind SIGSEGV on execve
17882999 show which cmdline option was erroneous (wishlist)
17983040 make valgrind VPATH and distcheck-clean (wishlist)
jsewarda6017a42004-07-17 23:44:35 +000018083998 Assertion `newfd > vgPlain_max_fd' failed (see below)
18182722 Unchecked mmap in as_pad leads to mysterious failures later
18278958 memcheck seg faults while running Mozilla
jsewarda2c08002004-07-18 09:24:57 +000018385416 Arguments with colon (e.g. --logsocket) ignored
jsewardbd0a6e42004-07-17 12:19:43 +0000184
185
186Additionally there are the following changes, which are not
187connected to any bug report numbers, AFAICS:
188
189* Rearranged address space layout relative to 2.1.1, so that
190 Valgrind/tools will run out of memory later than currently in many
191 circumstances. This is good news esp. for Calltree. It should
192 be possible for client programs to allocate over 800MB of
193 memory when using memcheck now.
194
jseward9cd978c2004-07-17 13:38:12 +0000195* Improved checking when laying out memory. Should hopefully avoid
196 the random segmentation faults that 2.1.1 sometimes caused.
197
jsewardbd0a6e42004-07-17 12:19:43 +0000198* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
199 support to the extent that V now works properly on NPTL-only setups.
200
201* Renamed the following options:
202 --logfile-fd --> --log-fd
203 --logfile --> --log-file
204 --logsocket --> --log-socket
205 to be consistent with each other and other options (esp. --input-fd).
206
207* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
208 improve the checking of other interface related ioctls.
209
jsewardbd0a6e42004-07-17 12:19:43 +0000210* Fix building with gcc-3.4.1.
211
212* Remove limit on number of semaphores supported.
213
jsewardbd0a6e42004-07-17 12:19:43 +0000214* Add support for syscalls: set_tid_address (258), acct (51).
215
216* Support instruction "repne movs" -- not official but seems to occur.
217
218* Implement an emulated soft limit for file descriptors in addition to
219 the current reserved area, which effectively acts as a hard limit. The
220 setrlimit system call now simply updates the emulated limits as best
221 as possible - the hard limit is not allowed to move at all and just
222 returns EPERM if you try and change it. This should stop reductions
223 in the soft limit causing assertions when valgrind tries to allocate
224 descriptors from the reserved area.
jsewarda6017a42004-07-17 23:44:35 +0000225 (This actually came from bug #83998).
jsewardbd0a6e42004-07-17 12:19:43 +0000226
nethercote76e8fd92004-07-21 10:37:31 +0000227* Major overhaul of Cachegrind implementation. First user-visible change
nethercote5e63bfb2004-07-17 12:49:53 +0000228 is that cachegrind.out files are now typically 90% smaller than they
nethercote76e8fd92004-07-21 10:37:31 +0000229 used to be; code annotation times are correspondingly much smaller.
230 Second user-visible change is that hit/miss counts for code that is
231 unloaded at run-time is no longer dumped into a single "discard" pile,
232 but accurately preserved.
jsewardbd0a6e42004-07-17 12:19:43 +0000233
234* Client requests for telling valgrind about memory pools.
235
236
237
jseward9cd978c2004-07-17 13:38:12 +0000238Developer (cvs head) release 2.1.1 (12 March 2004)
239~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsewardbd0a6e42004-07-17 12:19:43 +00002402.1.1 contains some internal structural changes needed for V's
jsewarde3e77042004-03-12 21:07:05 +0000241long-term future. These don't affect end-users. Most notable
242user-visible changes are:
243
244* Greater isolation between Valgrind and the program being run, so
245 the program is less likely to inadvertently kill Valgrind by
246 doing wild writes.
247
248* Massif: a new space profiling tool. Try it! It's cool, and it'll
249 tell you in detail where and when your C/C++ code is allocating heap.
250 Draws pretty .ps pictures of memory use against time. A potentially
251 powerful tool for making sense of your program's space use.
252
253* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
254 various signal/syscall things, and various problems with debug
255 info readers.
256
257* Support for glibc-2.3.3 based systems.
258
259We are now doing automatic overnight build-and-test runs on a variety
260of distros. As a result, we believe 2.1.1 builds and runs on:
261Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
262
263
264The following bugs, and probably many more, have been fixed. These
265are listed at http://bugs.kde.org. Reporting a bug for valgrind in
266the http://bugs.kde.org is much more likely to get you a fix than
267mailing developers directly, so please continue to keep sending bugs
268there.
269
27069616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
27169856 I don't know how to instrument MMXish stuff (Helgrind)
27273892 valgrind segfaults starting with Objective-C debug info
273 (fix for S-type stabs)
27473145 Valgrind complains too much about close(<reserved fd>)
27573902 Shadow memory allocation seems to fail on RedHat 8.0
27668633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
27775099 impossible to trace multiprocess programs
27876839 the `impossible' happened: disInstr: INT but not 0x80 !
27976762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
28076747 cannot include valgrind.h in c++ program
28176223 parsing B(3,10) gave NULL type => impossible happens
28275604 shmdt handling problem
28376416 Problems with gcc 3.4 snap 20040225
28475614 using -gstabs when building your programs the `impossible' happened
28575787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
28675294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
287 (REP RET)
28873326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
28972596 not recognizing __libc_malloc
29069489 Would like to attach ddd to running program
29172781 Cachegrind crashes with kde programs
29273055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
29373026 Descriptor leak check reports port numbers wrongly
29471705 README_MISSING_SYSCALL_OR_IOCTL out of date
29572643 Improve support for SSE/SSE2 instructions
29672484 valgrind leaves it's own signal mask in place when execing
29772650 Signal Handling always seems to restart system calls
29872006 The mmap system call turns all errors in ENOMEM
29971781 gdb attach is pretty useless
30071180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
30169886 writes to zero page cause valgrind to assert on exit
30271791 crash when valgrinding gimp 1.3 (stabs reader problem)
30369783 unhandled syscall: 218
30469782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
30570385 valgrind fails if the soft file descriptor limit is less
306 than about 828
30769529 "rep; nop" should do a yield
30870827 programs with lots of shared libraries report "mmap failed"
309 for some of them when reading symbols
31071028 glibc's strnlen is optimised enough to confuse valgrind
311
312
313
314
jseward43230652003-12-14 00:14:54 +0000315Unstable (cvs head) release 2.1.0 (15 December 2003)
316~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
317For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
318(Julian). It looks eminently usable, and given that it fixes some
319significant bugs, may well be worth using on a day-to-day basis.
3202.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
3218.2, RedHat 8.
322
3232.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
324handling of system calls and signals, and their interaction with
325threads. In general, the accuracy of the system call, thread and
326signal simulations is much improved. Specifically:
327
328- Blocking system calls behave exactly as they do when running
329 natively (not on valgrind). That is, if a syscall blocks only the
330 calling thread when running natively, than it behaves the same on
331 valgrind. No more mysterious hangs because V doesn't know that some
332 syscall or other, should block only the calling thread.
333
334- Interrupted syscalls should now give more faithful results.
335
336- Finally, signal contexts in signal handlers are supported. As a
337 result, konqueror on SuSE 9 no longer segfaults when notified of
338 file changes in directories it is watching.
339
340Other changes:
341
342- Robert Walsh's file descriptor leakage checks. When enabled,
343 Valgrind will print out a list of open file descriptors on
344 exit. Along with each file descriptor, Valgrind prints out a stack
345 backtrace of where the file was opened and any details relating to the
346 file descriptor such as the file name or socket details.
347 To use, give: --track-fds=yes
348
349- Implemented a few more SSE/SSE2 instructions.
350
351- Less crud on the stack when you do 'where' inside a GDB attach.
352
353- Fixed the following bugs:
354 68360: Valgrind does not compile against 2.6.0-testX kernels
355 68525: CVS head doesn't compile on C90 compilers
356 68566: pkgconfig support (wishlist)
357 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
358 69140: valgrind not able to explicitly specify a path to a binary.
359 69432: helgrind asserts encountering a MutexErr when there are
360 EraserErr suppressions
361
jseward0b12daf2003-12-14 14:35:28 +0000362- Increase the max size of the translation cache from 200k average bbs
363 to 300k average bbs. Programs on the size of OOo (680m17) are
364 thrashing the cache at the smaller size, creating large numbers of
365 retranslations and wasting significant time as a result.
366
jseward43230652003-12-14 00:14:54 +0000367
368
369Stable release 2.0.0 (5 Nov 2003)
370~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
371
3722.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
373improves support for SuSE 9 and the Red Hat "Severn" beta.
374
375- Further improvements to SSE/SSE2 support. The entire test suite of
376 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
377 20030307Z '-g -O -xW' now works. I think this gives pretty good
378 coverage of SSE/SSE2 floating point instructions, or at least the
379 subset emitted by Icc.
380
381- Also added support for the following instructions:
382 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
383 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
384
385- CFI support for GDB version 6. Needed to enable newer GDBs
386 to figure out where they are when using --gdb-attach=yes.
387
388- Fix this:
389 mc_translate.c:1091 (memcheck_instrument): Assertion
390 `u_in->size == 4 || u_in->size == 16' failed.
391
392- Return an error rather than panicing when given a bad socketcall.
393
394- Fix checking of syscall rt_sigtimedwait().
395
396- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
397
398- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
399 bytes long, when it could be shorter, which could cause false
400 positives.
401
402- Support use of select() for very large numbers of file descriptors.
403
404- Don't fail silently if the executable is statically linked, or is
405 setuid/setgid. Print an error message instead.
406
407- Support for old DWARF-1 format line number info.
408
409
410
411Snapshot 20031012 (12 October 2003)
412~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
413
414Three months worth of bug fixes, roughly. Most significant single
415change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
416
41720031012 builds on Red Hat Fedora ("Severn") but doesn't really work
418(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
419get a working version out soon. It may or may not work ok on the
420forthcoming SuSE 9; I hear positive noises about it but haven't been
421able to verify this myself (not until I get hold of a copy of 9).
422
423A detailed list of changes, in no particular order:
424
425- Describe --gen-suppressions in the FAQ.
426
427- Syscall __NR_waitpid supported.
428
429- Minor MMX bug fix.
430
431- -v prints program's argv[] at startup.
432
433- More glibc-2.3 suppressions.
434
435- Suppressions for stack underrun bug(s) in the c++ support library
436 distributed with Intel Icc 7.0.
437
438- Fix problems reading /proc/self/maps.
439
440- Fix a couple of messages that should have been suppressed by -q,
441 but weren't.
442
443- Make Addrcheck understand "Overlap" suppressions.
444
445- At startup, check if program is statically linked and bail out if so.
446
447- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
448
449- Memcheck/addrcheck: minor speed optimisations
450
451- Handle syscall __NR_brk more correctly than before.
452
453- Fixed incorrect allocate/free mismatch errors when using
454 operator new(unsigned, std::nothrow_t const&)
455 operator new[](unsigned, std::nothrow_t const&)
456
457- Support POSIX pthread spinlocks.
458
459- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000460
461- Implemented more opcodes:
462 - push %es
463 - push %ds
464 - pop %es
465 - pop %ds
466 - movntq
467 - sfence
468 - pshufw
469 - pavgb
470 - ucomiss
471 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000472 - mov imm32, %esp
473 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000474 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000475 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000476
jseward43230652003-12-14 00:14:54 +0000477- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000478
sewardj90238792003-05-05 00:23:42 +0000479
sewardj945f39f2003-07-25 21:11:40 +0000480Snapshot 20030725 (25 July 2003)
481~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
482
483Fixes some minor problems in 20030716.
484
485- Fix bugs in overlap checking for strcpy/memcpy etc.
486
487- Do overlap checking with Addrcheck as well as Memcheck.
488
489- Fix this:
490 Memcheck: the `impossible' happened:
491 get_error_name: unexpected type
492
493- Install headers needed to compile new skins.
494
sewardje3dd2e02003-07-27 08:04:48 +0000495- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000496 passed to non-traced children.
497
sewardjb9eda952003-07-26 21:39:05 +0000498- Fix file descriptor leak in valgrind-listener.
499
sewardje3dd2e02003-07-27 08:04:48 +0000500- Fix longstanding bug in which the allocation point of a
501 block resized by realloc was not correctly set. This may
502 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000503
504
sewardj626fd892003-07-16 20:10:26 +0000505Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000506~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
507
sewardj626fd892003-07-16 20:10:26 +000050820030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000509This is the branch which will become valgrind-2.0. It contains
510significant enhancements over the 1.9.X branch.
511
512Despite this being a snapshot of the CVS head, it is believed to be
513quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
514-- and therefore suitable for widespread use. Please let us know asap
515if it causes problems for you.
516
517Two reasons for releasing a snapshot now are:
518
519- It's been a while since 1.9.6, and this snapshot fixes
520 various problems that 1.9.6 has with threaded programs
521 on glibc-2.3.X based systems.
522
523- So as to make available improvements in the 2.0 line.
524
sewardj626fd892003-07-16 20:10:26 +0000525Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000526
527- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
528 systems (SuSE 8.2, Red Hat 9). If you have had problems
529 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000530 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000531 matters. This snapshot seems stable enough to run OpenOffice.org
532 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
533 threaded app if ever I saw one.
534
535- Automatic generation of suppression records; you no longer
536 need to write them by hand. Use --gen-suppressions=yes.
537
sewardj21511802003-07-22 17:47:42 +0000538- strcpy/memcpy/etc check their arguments for overlaps, when
539 running with the Memcheck or Addrcheck skins.
540
541- malloc_usable_size() is now supported.
542
543- new client requests:
544 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
545 useful with regression testing
546 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
547 on real CPU (use with caution!)
548
sewardj9d916ed2003-07-14 23:38:40 +0000549- The GDB attach mechanism is more flexible. Allow the GDB to
550 be run to be specified by --gdb-path=/path/to/gdb, and specify
551 which file descriptor V will read its input from with
552 --input-fd=<number>.
553
sewardj21511802003-07-22 17:47:42 +0000554- Cachegrind gives more accurate results (wasn't tracking instructions in
555 malloc() and friends previously, is now).
556
sewardj9d916ed2003-07-14 23:38:40 +0000557- Complete support for the MMX instruction set.
558
559- Partial support for the SSE and SSE2 instruction sets. Work for this
560 is ongoing. About half the SSE/SSE2 instructions are done, so
561 some SSE based programs may work. Currently you need to specify
562 --skin=addrcheck. Basically not suitable for real use yet.
563
564- Significant speedups (10%-20%) for standard memory checking.
565
566- Fix assertion failure in pthread_once().
567
568- Fix this:
569 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
570 Assertion `ms_end >= ms_now' failed.
571
572- Implement pthread_mutexattr_setpshared.
573
574- Understand Pentium 4 branch hints. Also implemented a couple more
575 obscure x86 instructions.
576
577- Lots of other minor bug fixes.
578
sewardj626fd892003-07-16 20:10:26 +0000579- We have a decent regression test system, for the first time.
580 This doesn't help you directly, but it does make it a lot easier
581 for us to track the quality of the system, especially across
582 multiple linux distributions.
583
584 You can run the regression tests with 'make regtest' after 'make
585 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
586
587 == 84 tests, 0 stderr failures, 0 stdout failures ==
588
589 On Red Hat 8, I get this:
590
591 == 84 tests, 2 stderr failures, 1 stdout failure ==
592 corecheck/tests/res_search (stdout)
593 memcheck/tests/sigaltstack (stderr)
594
595 sigaltstack is probably harmless. res_search doesn't work
596 on R H 8 even running natively, so I'm not too worried.
597
598 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
599
600 == 84 tests, 2 stderr failures, 1 stdout failure ==
601 corecheck/tests/pth_atfork1 (stdout)
602 corecheck/tests/pth_atfork1 (stderr)
603 memcheck/tests/sigaltstack (stderr)
604
605 You need to run on a PII system, at least, since some tests
606 contain P6-specific instructions, and the test machine needs
607 access to the internet so that corecheck/tests/res_search
608 (a test that the DNS resolver works) can function.
609
sewardj9d916ed2003-07-14 23:38:40 +0000610As ever, thanks for the vast amount of feedback :) and bug reports :(
611We may not answer all messages, but we do at least look at all of
612them, and tend to fix the most frequently reported bugs.
613
614
615
sewardj37918822003-05-05 01:05:09 +0000616Version 1.9.6 (7 May 2003 or thereabouts)
617~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
618
619Major changes in 1.9.6:
620
621- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
622 RedHat 9, to name but two ...) It turned out that 1.9.5
623 had problems with threading support on glibc >= 2.3.2,
624 usually manifested by threaded programs deadlocking in system calls,
625 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
626 is the first valgrind which gives reasonable support for
627 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
628
629- Majorly expanded FAQ.txt. We've added workarounds for all
630 common problems for which a workaround is known.
631
632Minor changes in 1.9.6:
633
634- Fix identification of the main thread's stack. Incorrect
635 identification of it was causing some on-stack addresses to not get
636 identified as such. This only affected the usefulness of some error
637 messages; the correctness of the checks made is unchanged.
638
639- Support for kernels >= 2.5.68.
640
641- Dummy implementations of __libc_current_sigrtmin,
642 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
643 good enough to keep alive programs which previously died for lack of
644 them.
645
646- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
647
sewardj3d47b792003-05-05 22:15:35 +0000648- Fix bug in the DWARF2 debug line info loader, when instructions
649 following each other have source lines far from each other
650 (e.g. with inlined functions).
651
sewardj37918822003-05-05 01:05:09 +0000652- Debug info reading: read symbols from both "symtab" and "dynsym"
653 sections, rather than merely from the one that comes last in the
654 file.
655
656- New syscall support: prctl(), creat(), lookup_dcookie().
657
658- When checking calls to accept(), recvfrom(), getsocketopt(),
659 don't complain if buffer values are NULL.
660
661- Try and avoid assertion failures in
662 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
663
664- Minor bug fixes in cg_annotate.
665
666
667
sewardj90238792003-05-05 00:23:42 +0000668Version 1.9.5 (7 April 2003)
669~~~~~~~~~~~~~~~~~~~~~~~~~~~~
670
671It occurs to me that it would be helpful for valgrind users to record
672in the source distribution the changes in each release. So I now
673attempt to mend my errant ways :-) Changes in this and future releases
674will be documented in the NEWS file in the source distribution.
675
676Major changes in 1.9.5:
677
678- (Critical bug fix): Fix a bug in the FPU simulation. This was
679 causing some floating point conditional tests not to work right.
680 Several people reported this. If you had floating point code which
681 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
682
683- Partial support for Red Hat 9. RH9 uses the new Native Posix
684 Threads Library (NPTL), instead of the older LinuxThreads.
685 This potentially causes problems with V which will take some
686 time to correct. In the meantime we have partially worked around
687 this, and so 1.9.5 works on RH9. Threaded programs still work,
688 but they may deadlock, because some system calls (accept, read,
689 write, etc) which should be nonblocking, in fact do block. This
690 is a known bug which we are looking into.
691
692 If you can, your best bet (unfortunately) is to avoid using
693 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
694 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
695
696Minor changes in 1.9.5:
697
698- Added some #errors to valgrind.h to ensure people don't include
699 it accidentally in their sources. This is a change from 1.0.X
700 which was never properly documented. The right thing to include
701 is now memcheck.h. Some people reported problems and strange
702 behaviour when (incorrectly) including valgrind.h in code with
703 1.9.1 -- 1.9.4. This is no longer possible.
704
705- Add some __extension__ bits and pieces so that gcc configured
706 for valgrind-checking compiles even with -Werror. If you
707 don't understand this, ignore it. Of interest to gcc developers
708 only.
709
710- Removed a pointless check which caused problems interworking
711 with Clearcase. V would complain about shared objects whose
712 names did not end ".so", and refuse to run. This is now fixed.
713 In fact it was fixed in 1.9.4 but not documented.
714
715- Fixed a bug causing an assertion failure of "waiters == 1"
716 somewhere in vg_scheduler.c, when running large threaded apps,
717 notably MySQL.
718
719- Add support for the munlock system call (124).
720
721Some comments about future releases:
722
7231.9.5 is, we hope, the most stable Valgrind so far. It pretty much
724supersedes the 1.0.X branch. If you are a valgrind packager, please
725consider making 1.9.5 available to your users. You can regard the
7261.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
727are no plans at all for further releases of the 1.0.X branch.
728
729If you want a leading-edge valgrind, consider building the cvs head
730(from SourceForge), or getting a snapshot of it. Current cool stuff
731going in includes MMX support (done); SSE/SSE2 support (in progress),
732a significant (10-20%) performance improvement (done), and the usual
733large collection of minor changes. Hopefully we will be able to
734improve our NPTL support, but no promises.
735