blob: 46160d5490afdc5a01e2309c79e6cc55ba0bb0e2 [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~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5
6Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82.2.0 is not much different from 2.1.2, released seven weeks ago.
9A number of bugs have been fixed, most notably #85658, which gave
10problems for quite a few people. There have been many internal
11cleanups, but those are not user visible.
12
13The following bugs have been fixed since 2.1.2:
14
1585658 Assert in coregrind/vg_libpthread.c:2326 (open64) !=
16 (void*)0 failed
17 This bug was reported multiple times, and so the following
18 duplicates of it are also fixed: 87620, 85796, 85935, 86065,
19 86919, 86988, 87917, 88156
20
2180716 Semaphore mapping bug caused by unmap (sem_destroy)
22 (Was fixed prior to 2.1.2)
23
2486987 semctl and shmctl syscalls family is not handled properly
25
2686696 valgrind 2.1.2 + RH AS2.1 + librt
27
2886730 valgrind locks up at end of run with assertion failure
29 in __pthread_unwind
30
3186641 memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
32 (also fixes 74298, a duplicate of this)
33
3485947 MMX/SSE unhandled instruction 'sfence'
35
3684978 Wrong error "Conditional jump or move depends on
37 uninitialised value" resulting from "sbbl %reg, %reg"
38
3986254 ssort() fails when signed int return type from comparison is
40 too small to handle result of unsigned int subtraction
41
4287089 memalign( 4, xxx) makes valgrind assert
43
4486407 Add partial support for the low-level parallel port driver ioctls.
45
4670587 Add timestamps to Valgrind output? (wishlist)
47
4884937 vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
49 (fixed prior to 2.1.2)
50
5186317 cannot load libSDL-1.2.so.0 using valgrind
52
5386989 memcpy from mac_replace_strmem.c complains about
54 uninitialized pointers passed when length to copy is zero
55
5685811 gnu pascal symbol causes segmentation fault; ok in 2.0.0
57
5879138 writing to sbrk()'d memory causes segfault
59
6077369 sched deadlock while signal received during pthread_join
61 and the joined thread exited
62
6388115 In signal handler for SIGFPE, siginfo->si_addr is wrong
64 under Valgrind
65
6678765 Massif crashes on app exit if FP exceptions are enabled
67
68Additionally there are the following changes, which are not
69connected to any bug report numbers, AFAICS:
70
71* Fix scary bug causing mis-identification of SSE stores vs
72 loads and so causing memcheck to sometimes give nonsense results
73 on SSE code.
74
75* Add support for the POSIX message queue system calls.
76
77* Fix to allow 32-bit Valgrind to run on AMD64 boxes. Note: this does
78 NOT allow Valgrind to work with 64-bit executables - only with 32-bit
79 executables on an AMD64 box.
80
81* At configure time, only check whether linux/mii.h can be processed
82 so that we don't generate ugly warnings by trying to compile it.
83
84
85
jseward9cd978c2004-07-17 13:38:12 +000086Developer (cvs head) release 2.1.2 (18 July 2004)
jsewardbd0a6e42004-07-17 12:19:43 +000087~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
882.1.2 contains four months worth of bug fixes and refinements.
jseward9cd978c2004-07-17 13:38:12 +000089Although officially a developer release, we believe it to be stable
90enough for widespread day-to-day use. 2.1.2 is pretty good, so try it
91first, although there is a chance it won't work. If so then try 2.0.0
92and tell us what went wrong." 2.1.2 fixes a lot of problems present
93in 2.0.0 and is generally a much better product.
jsewardbd0a6e42004-07-17 12:19:43 +000094
jseward9cd978c2004-07-17 13:38:12 +000095Relative to 2.1.1, a large number of minor problems with 2.1.1 have
96been fixed, and so if you use 2.1.1 you should try 2.1.2. Users of
97the last stable release, 2.0.0, might also want to try this release.
jsewardbd0a6e42004-07-17 12:19:43 +000098
99The following bugs, and probably many more, have been fixed. These
100are listed at http://bugs.kde.org. Reporting a bug for valgrind in
101the http://bugs.kde.org is much more likely to get you a fix than
102mailing developers directly, so please continue to keep sending bugs
103there.
104
10576869 Crashes when running any tool under Fedora Core 2 test1
106 This fixes the problem with returning from a signal handler
jseward0400d4d2004-07-17 23:26:46 +0000107 when VDSOs are turned off in FC2.
jsewardbd0a6e42004-07-17 12:19:43 +0000108
jseward0400d4d2004-07-17 23:26:46 +000010969508 java 1.4.2 client fails with erroneous "stack size too small".
110 This fix makes more of the pthread stack attribute related
111 functions work properly. Java still doesn't work though.
jsewardbd0a6e42004-07-17 12:19:43 +0000112
11371906 malloc alignment should be 8, not 4
114 All memory returned by malloc/new etc is now at least
115 8-byte aligned.
116
jsewarda6017a42004-07-17 23:44:35 +000011781970 vg_alloc_ThreadState: no free slots available
118 (closed because the workaround is simple: increase
119 VG_N_THREADS, rebuild and try again.)
120
jsewardbd0a6e42004-07-17 12:19:43 +000012178514 Conditional jump or move depends on uninitialized value(s)
122 (a slight mishanding of FP code in memcheck)
123
jsewarda6017a42004-07-17 23:44:35 +000012477952 pThread Support (crash) (due to initialisation-ordering probs)
125 (also 85118)
126
jsewardbd0a6e42004-07-17 12:19:43 +000012780942 Addrcheck wasn't doing overlap checking as it should.
12878048 return NULL on malloc/new etc failure, instead of asserting
12973655 operator new() override in user .so files often doesn't get picked up
13083060 Valgrind does not handle native kernel AIO
13169872 Create proper coredumps after fatal signals
13282026 failure with new glibc versions: __libc_* functions are not exported
13370344 UNIMPLEMENTED FUNCTION: tcdrain
13481297 Cancellation of pthread_cond_wait does not require mutex
13582872 Using debug info from additional packages (wishlist)
13683025 Support for ioctls FIGETBSZ and FIBMAP
13783340 Support for ioctl HDIO_GET_IDENTITY
13879714 Support for the semtimedop system call.
13977022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
14082098 hp2ps ansification (wishlist)
14183573 Valgrind SIGSEGV on execve
14282999 show which cmdline option was erroneous (wishlist)
14383040 make valgrind VPATH and distcheck-clean (wishlist)
jsewarda6017a42004-07-17 23:44:35 +000014483998 Assertion `newfd > vgPlain_max_fd' failed (see below)
14582722 Unchecked mmap in as_pad leads to mysterious failures later
14678958 memcheck seg faults while running Mozilla
jsewarda2c08002004-07-18 09:24:57 +000014785416 Arguments with colon (e.g. --logsocket) ignored
jsewardbd0a6e42004-07-17 12:19:43 +0000148
149
150Additionally there are the following changes, which are not
151connected to any bug report numbers, AFAICS:
152
153* Rearranged address space layout relative to 2.1.1, so that
154 Valgrind/tools will run out of memory later than currently in many
155 circumstances. This is good news esp. for Calltree. It should
156 be possible for client programs to allocate over 800MB of
157 memory when using memcheck now.
158
jseward9cd978c2004-07-17 13:38:12 +0000159* Improved checking when laying out memory. Should hopefully avoid
160 the random segmentation faults that 2.1.1 sometimes caused.
161
jsewardbd0a6e42004-07-17 12:19:43 +0000162* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
163 support to the extent that V now works properly on NPTL-only setups.
164
165* Renamed the following options:
166 --logfile-fd --> --log-fd
167 --logfile --> --log-file
168 --logsocket --> --log-socket
169 to be consistent with each other and other options (esp. --input-fd).
170
171* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
172 improve the checking of other interface related ioctls.
173
jsewardbd0a6e42004-07-17 12:19:43 +0000174* Fix building with gcc-3.4.1.
175
176* Remove limit on number of semaphores supported.
177
jsewardbd0a6e42004-07-17 12:19:43 +0000178* Add support for syscalls: set_tid_address (258), acct (51).
179
180* Support instruction "repne movs" -- not official but seems to occur.
181
182* Implement an emulated soft limit for file descriptors in addition to
183 the current reserved area, which effectively acts as a hard limit. The
184 setrlimit system call now simply updates the emulated limits as best
185 as possible - the hard limit is not allowed to move at all and just
186 returns EPERM if you try and change it. This should stop reductions
187 in the soft limit causing assertions when valgrind tries to allocate
188 descriptors from the reserved area.
jsewarda6017a42004-07-17 23:44:35 +0000189 (This actually came from bug #83998).
jsewardbd0a6e42004-07-17 12:19:43 +0000190
nethercote76e8fd92004-07-21 10:37:31 +0000191* Major overhaul of Cachegrind implementation. First user-visible change
nethercote5e63bfb2004-07-17 12:49:53 +0000192 is that cachegrind.out files are now typically 90% smaller than they
nethercote76e8fd92004-07-21 10:37:31 +0000193 used to be; code annotation times are correspondingly much smaller.
194 Second user-visible change is that hit/miss counts for code that is
195 unloaded at run-time is no longer dumped into a single "discard" pile,
196 but accurately preserved.
jsewardbd0a6e42004-07-17 12:19:43 +0000197
198* Client requests for telling valgrind about memory pools.
199
200
201
jseward9cd978c2004-07-17 13:38:12 +0000202Developer (cvs head) release 2.1.1 (12 March 2004)
203~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsewardbd0a6e42004-07-17 12:19:43 +00002042.1.1 contains some internal structural changes needed for V's
jsewarde3e77042004-03-12 21:07:05 +0000205long-term future. These don't affect end-users. Most notable
206user-visible changes are:
207
208* Greater isolation between Valgrind and the program being run, so
209 the program is less likely to inadvertently kill Valgrind by
210 doing wild writes.
211
212* Massif: a new space profiling tool. Try it! It's cool, and it'll
213 tell you in detail where and when your C/C++ code is allocating heap.
214 Draws pretty .ps pictures of memory use against time. A potentially
215 powerful tool for making sense of your program's space use.
216
217* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
218 various signal/syscall things, and various problems with debug
219 info readers.
220
221* Support for glibc-2.3.3 based systems.
222
223We are now doing automatic overnight build-and-test runs on a variety
224of distros. As a result, we believe 2.1.1 builds and runs on:
225Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
226
227
228The following bugs, and probably many more, have been fixed. These
229are listed at http://bugs.kde.org. Reporting a bug for valgrind in
230the http://bugs.kde.org is much more likely to get you a fix than
231mailing developers directly, so please continue to keep sending bugs
232there.
233
23469616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
23569856 I don't know how to instrument MMXish stuff (Helgrind)
23673892 valgrind segfaults starting with Objective-C debug info
237 (fix for S-type stabs)
23873145 Valgrind complains too much about close(<reserved fd>)
23973902 Shadow memory allocation seems to fail on RedHat 8.0
24068633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
24175099 impossible to trace multiprocess programs
24276839 the `impossible' happened: disInstr: INT but not 0x80 !
24376762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
24476747 cannot include valgrind.h in c++ program
24576223 parsing B(3,10) gave NULL type => impossible happens
24675604 shmdt handling problem
24776416 Problems with gcc 3.4 snap 20040225
24875614 using -gstabs when building your programs the `impossible' happened
24975787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
25075294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
251 (REP RET)
25273326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
25372596 not recognizing __libc_malloc
25469489 Would like to attach ddd to running program
25572781 Cachegrind crashes with kde programs
25673055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
25773026 Descriptor leak check reports port numbers wrongly
25871705 README_MISSING_SYSCALL_OR_IOCTL out of date
25972643 Improve support for SSE/SSE2 instructions
26072484 valgrind leaves it's own signal mask in place when execing
26172650 Signal Handling always seems to restart system calls
26272006 The mmap system call turns all errors in ENOMEM
26371781 gdb attach is pretty useless
26471180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
26569886 writes to zero page cause valgrind to assert on exit
26671791 crash when valgrinding gimp 1.3 (stabs reader problem)
26769783 unhandled syscall: 218
26869782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
26970385 valgrind fails if the soft file descriptor limit is less
270 than about 828
27169529 "rep; nop" should do a yield
27270827 programs with lots of shared libraries report "mmap failed"
273 for some of them when reading symbols
27471028 glibc's strnlen is optimised enough to confuse valgrind
275
276
277
278
jseward43230652003-12-14 00:14:54 +0000279Unstable (cvs head) release 2.1.0 (15 December 2003)
280~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
282(Julian). It looks eminently usable, and given that it fixes some
283significant bugs, may well be worth using on a day-to-day basis.
2842.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
2858.2, RedHat 8.
286
2872.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
288handling of system calls and signals, and their interaction with
289threads. In general, the accuracy of the system call, thread and
290signal simulations is much improved. Specifically:
291
292- Blocking system calls behave exactly as they do when running
293 natively (not on valgrind). That is, if a syscall blocks only the
294 calling thread when running natively, than it behaves the same on
295 valgrind. No more mysterious hangs because V doesn't know that some
296 syscall or other, should block only the calling thread.
297
298- Interrupted syscalls should now give more faithful results.
299
300- Finally, signal contexts in signal handlers are supported. As a
301 result, konqueror on SuSE 9 no longer segfaults when notified of
302 file changes in directories it is watching.
303
304Other changes:
305
306- Robert Walsh's file descriptor leakage checks. When enabled,
307 Valgrind will print out a list of open file descriptors on
308 exit. Along with each file descriptor, Valgrind prints out a stack
309 backtrace of where the file was opened and any details relating to the
310 file descriptor such as the file name or socket details.
311 To use, give: --track-fds=yes
312
313- Implemented a few more SSE/SSE2 instructions.
314
315- Less crud on the stack when you do 'where' inside a GDB attach.
316
317- Fixed the following bugs:
318 68360: Valgrind does not compile against 2.6.0-testX kernels
319 68525: CVS head doesn't compile on C90 compilers
320 68566: pkgconfig support (wishlist)
321 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
322 69140: valgrind not able to explicitly specify a path to a binary.
323 69432: helgrind asserts encountering a MutexErr when there are
324 EraserErr suppressions
325
jseward0b12daf2003-12-14 14:35:28 +0000326- Increase the max size of the translation cache from 200k average bbs
327 to 300k average bbs. Programs on the size of OOo (680m17) are
328 thrashing the cache at the smaller size, creating large numbers of
329 retranslations and wasting significant time as a result.
330
jseward43230652003-12-14 00:14:54 +0000331
332
333Stable release 2.0.0 (5 Nov 2003)
334~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
335
3362.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
337improves support for SuSE 9 and the Red Hat "Severn" beta.
338
339- Further improvements to SSE/SSE2 support. The entire test suite of
340 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
341 20030307Z '-g -O -xW' now works. I think this gives pretty good
342 coverage of SSE/SSE2 floating point instructions, or at least the
343 subset emitted by Icc.
344
345- Also added support for the following instructions:
346 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
347 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
348
349- CFI support for GDB version 6. Needed to enable newer GDBs
350 to figure out where they are when using --gdb-attach=yes.
351
352- Fix this:
353 mc_translate.c:1091 (memcheck_instrument): Assertion
354 `u_in->size == 4 || u_in->size == 16' failed.
355
356- Return an error rather than panicing when given a bad socketcall.
357
358- Fix checking of syscall rt_sigtimedwait().
359
360- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
361
362- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
363 bytes long, when it could be shorter, which could cause false
364 positives.
365
366- Support use of select() for very large numbers of file descriptors.
367
368- Don't fail silently if the executable is statically linked, or is
369 setuid/setgid. Print an error message instead.
370
371- Support for old DWARF-1 format line number info.
372
373
374
375Snapshot 20031012 (12 October 2003)
376~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
377
378Three months worth of bug fixes, roughly. Most significant single
379change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
380
38120031012 builds on Red Hat Fedora ("Severn") but doesn't really work
382(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
383get a working version out soon. It may or may not work ok on the
384forthcoming SuSE 9; I hear positive noises about it but haven't been
385able to verify this myself (not until I get hold of a copy of 9).
386
387A detailed list of changes, in no particular order:
388
389- Describe --gen-suppressions in the FAQ.
390
391- Syscall __NR_waitpid supported.
392
393- Minor MMX bug fix.
394
395- -v prints program's argv[] at startup.
396
397- More glibc-2.3 suppressions.
398
399- Suppressions for stack underrun bug(s) in the c++ support library
400 distributed with Intel Icc 7.0.
401
402- Fix problems reading /proc/self/maps.
403
404- Fix a couple of messages that should have been suppressed by -q,
405 but weren't.
406
407- Make Addrcheck understand "Overlap" suppressions.
408
409- At startup, check if program is statically linked and bail out if so.
410
411- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
412
413- Memcheck/addrcheck: minor speed optimisations
414
415- Handle syscall __NR_brk more correctly than before.
416
417- Fixed incorrect allocate/free mismatch errors when using
418 operator new(unsigned, std::nothrow_t const&)
419 operator new[](unsigned, std::nothrow_t const&)
420
421- Support POSIX pthread spinlocks.
422
423- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000424
425- Implemented more opcodes:
426 - push %es
427 - push %ds
428 - pop %es
429 - pop %ds
430 - movntq
431 - sfence
432 - pshufw
433 - pavgb
434 - ucomiss
435 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000436 - mov imm32, %esp
437 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000438 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000439 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000440
jseward43230652003-12-14 00:14:54 +0000441- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000442
sewardj90238792003-05-05 00:23:42 +0000443
sewardj945f39f2003-07-25 21:11:40 +0000444Snapshot 20030725 (25 July 2003)
445~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
446
447Fixes some minor problems in 20030716.
448
449- Fix bugs in overlap checking for strcpy/memcpy etc.
450
451- Do overlap checking with Addrcheck as well as Memcheck.
452
453- Fix this:
454 Memcheck: the `impossible' happened:
455 get_error_name: unexpected type
456
457- Install headers needed to compile new skins.
458
sewardje3dd2e02003-07-27 08:04:48 +0000459- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000460 passed to non-traced children.
461
sewardjb9eda952003-07-26 21:39:05 +0000462- Fix file descriptor leak in valgrind-listener.
463
sewardje3dd2e02003-07-27 08:04:48 +0000464- Fix longstanding bug in which the allocation point of a
465 block resized by realloc was not correctly set. This may
466 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000467
468
sewardj626fd892003-07-16 20:10:26 +0000469Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000470~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
471
sewardj626fd892003-07-16 20:10:26 +000047220030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000473This is the branch which will become valgrind-2.0. It contains
474significant enhancements over the 1.9.X branch.
475
476Despite this being a snapshot of the CVS head, it is believed to be
477quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
478-- and therefore suitable for widespread use. Please let us know asap
479if it causes problems for you.
480
481Two reasons for releasing a snapshot now are:
482
483- It's been a while since 1.9.6, and this snapshot fixes
484 various problems that 1.9.6 has with threaded programs
485 on glibc-2.3.X based systems.
486
487- So as to make available improvements in the 2.0 line.
488
sewardj626fd892003-07-16 20:10:26 +0000489Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000490
491- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
492 systems (SuSE 8.2, Red Hat 9). If you have had problems
493 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000494 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000495 matters. This snapshot seems stable enough to run OpenOffice.org
496 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
497 threaded app if ever I saw one.
498
499- Automatic generation of suppression records; you no longer
500 need to write them by hand. Use --gen-suppressions=yes.
501
sewardj21511802003-07-22 17:47:42 +0000502- strcpy/memcpy/etc check their arguments for overlaps, when
503 running with the Memcheck or Addrcheck skins.
504
505- malloc_usable_size() is now supported.
506
507- new client requests:
508 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
509 useful with regression testing
510 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
511 on real CPU (use with caution!)
512
sewardj9d916ed2003-07-14 23:38:40 +0000513- The GDB attach mechanism is more flexible. Allow the GDB to
514 be run to be specified by --gdb-path=/path/to/gdb, and specify
515 which file descriptor V will read its input from with
516 --input-fd=<number>.
517
sewardj21511802003-07-22 17:47:42 +0000518- Cachegrind gives more accurate results (wasn't tracking instructions in
519 malloc() and friends previously, is now).
520
sewardj9d916ed2003-07-14 23:38:40 +0000521- Complete support for the MMX instruction set.
522
523- Partial support for the SSE and SSE2 instruction sets. Work for this
524 is ongoing. About half the SSE/SSE2 instructions are done, so
525 some SSE based programs may work. Currently you need to specify
526 --skin=addrcheck. Basically not suitable for real use yet.
527
528- Significant speedups (10%-20%) for standard memory checking.
529
530- Fix assertion failure in pthread_once().
531
532- Fix this:
533 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
534 Assertion `ms_end >= ms_now' failed.
535
536- Implement pthread_mutexattr_setpshared.
537
538- Understand Pentium 4 branch hints. Also implemented a couple more
539 obscure x86 instructions.
540
541- Lots of other minor bug fixes.
542
sewardj626fd892003-07-16 20:10:26 +0000543- We have a decent regression test system, for the first time.
544 This doesn't help you directly, but it does make it a lot easier
545 for us to track the quality of the system, especially across
546 multiple linux distributions.
547
548 You can run the regression tests with 'make regtest' after 'make
549 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
550
551 == 84 tests, 0 stderr failures, 0 stdout failures ==
552
553 On Red Hat 8, I get this:
554
555 == 84 tests, 2 stderr failures, 1 stdout failure ==
556 corecheck/tests/res_search (stdout)
557 memcheck/tests/sigaltstack (stderr)
558
559 sigaltstack is probably harmless. res_search doesn't work
560 on R H 8 even running natively, so I'm not too worried.
561
562 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
563
564 == 84 tests, 2 stderr failures, 1 stdout failure ==
565 corecheck/tests/pth_atfork1 (stdout)
566 corecheck/tests/pth_atfork1 (stderr)
567 memcheck/tests/sigaltstack (stderr)
568
569 You need to run on a PII system, at least, since some tests
570 contain P6-specific instructions, and the test machine needs
571 access to the internet so that corecheck/tests/res_search
572 (a test that the DNS resolver works) can function.
573
sewardj9d916ed2003-07-14 23:38:40 +0000574As ever, thanks for the vast amount of feedback :) and bug reports :(
575We may not answer all messages, but we do at least look at all of
576them, and tend to fix the most frequently reported bugs.
577
578
579
sewardj37918822003-05-05 01:05:09 +0000580Version 1.9.6 (7 May 2003 or thereabouts)
581~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
582
583Major changes in 1.9.6:
584
585- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
586 RedHat 9, to name but two ...) It turned out that 1.9.5
587 had problems with threading support on glibc >= 2.3.2,
588 usually manifested by threaded programs deadlocking in system calls,
589 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
590 is the first valgrind which gives reasonable support for
591 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
592
593- Majorly expanded FAQ.txt. We've added workarounds for all
594 common problems for which a workaround is known.
595
596Minor changes in 1.9.6:
597
598- Fix identification of the main thread's stack. Incorrect
599 identification of it was causing some on-stack addresses to not get
600 identified as such. This only affected the usefulness of some error
601 messages; the correctness of the checks made is unchanged.
602
603- Support for kernels >= 2.5.68.
604
605- Dummy implementations of __libc_current_sigrtmin,
606 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
607 good enough to keep alive programs which previously died for lack of
608 them.
609
610- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
611
sewardj3d47b792003-05-05 22:15:35 +0000612- Fix bug in the DWARF2 debug line info loader, when instructions
613 following each other have source lines far from each other
614 (e.g. with inlined functions).
615
sewardj37918822003-05-05 01:05:09 +0000616- Debug info reading: read symbols from both "symtab" and "dynsym"
617 sections, rather than merely from the one that comes last in the
618 file.
619
620- New syscall support: prctl(), creat(), lookup_dcookie().
621
622- When checking calls to accept(), recvfrom(), getsocketopt(),
623 don't complain if buffer values are NULL.
624
625- Try and avoid assertion failures in
626 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
627
628- Minor bug fixes in cg_annotate.
629
630
631
sewardj90238792003-05-05 00:23:42 +0000632Version 1.9.5 (7 April 2003)
633~~~~~~~~~~~~~~~~~~~~~~~~~~~~
634
635It occurs to me that it would be helpful for valgrind users to record
636in the source distribution the changes in each release. So I now
637attempt to mend my errant ways :-) Changes in this and future releases
638will be documented in the NEWS file in the source distribution.
639
640Major changes in 1.9.5:
641
642- (Critical bug fix): Fix a bug in the FPU simulation. This was
643 causing some floating point conditional tests not to work right.
644 Several people reported this. If you had floating point code which
645 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
646
647- Partial support for Red Hat 9. RH9 uses the new Native Posix
648 Threads Library (NPTL), instead of the older LinuxThreads.
649 This potentially causes problems with V which will take some
650 time to correct. In the meantime we have partially worked around
651 this, and so 1.9.5 works on RH9. Threaded programs still work,
652 but they may deadlock, because some system calls (accept, read,
653 write, etc) which should be nonblocking, in fact do block. This
654 is a known bug which we are looking into.
655
656 If you can, your best bet (unfortunately) is to avoid using
657 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
658 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
659
660Minor changes in 1.9.5:
661
662- Added some #errors to valgrind.h to ensure people don't include
663 it accidentally in their sources. This is a change from 1.0.X
664 which was never properly documented. The right thing to include
665 is now memcheck.h. Some people reported problems and strange
666 behaviour when (incorrectly) including valgrind.h in code with
667 1.9.1 -- 1.9.4. This is no longer possible.
668
669- Add some __extension__ bits and pieces so that gcc configured
670 for valgrind-checking compiles even with -Werror. If you
671 don't understand this, ignore it. Of interest to gcc developers
672 only.
673
674- Removed a pointless check which caused problems interworking
675 with Clearcase. V would complain about shared objects whose
676 names did not end ".so", and refuse to run. This is now fixed.
677 In fact it was fixed in 1.9.4 but not documented.
678
679- Fixed a bug causing an assertion failure of "waiters == 1"
680 somewhere in vg_scheduler.c, when running large threaded apps,
681 notably MySQL.
682
683- Add support for the munlock system call (124).
684
685Some comments about future releases:
686
6871.9.5 is, we hope, the most stable Valgrind so far. It pretty much
688supersedes the 1.0.X branch. If you are a valgrind packager, please
689consider making 1.9.5 available to your users. You can regard the
6901.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
691are no plans at all for further releases of the 1.0.X branch.
692
693If you want a leading-edge valgrind, consider building the cvs head
694(from SourceForge), or getting a snapshot of it. Current cool stuff
695going in includes MMX support (done); SSE/SSE2 support (in progress),
696a significant (10-20%) performance improvement (done), and the usual
697large collection of minor changes. Hopefully we will be able to
698improve our NPTL support, but no promises.
699