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