blob: 2a3418f9d5941406bacb0e4ca957c3115d1f9e34 [file] [log] [blame]
jseward43230652003-12-14 00:14:54 +00001
jseward9cd978c2004-07-17 13:38:12 +00002Developer (cvs head) release 2.1.2 (18 July 2004)
jsewardbd0a6e42004-07-17 12:19:43 +00003~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42.1.2 contains four months worth of bug fixes and refinements.
jseward9cd978c2004-07-17 13:38:12 +00005Although officially a developer release, we believe it to be stable
6enough for widespread day-to-day use. 2.1.2 is pretty good, so try it
7first, although there is a chance it won't work. If so then try 2.0.0
8and tell us what went wrong." 2.1.2 fixes a lot of problems present
9in 2.0.0 and is generally a much better product.
jsewardbd0a6e42004-07-17 12:19:43 +000010
jseward9cd978c2004-07-17 13:38:12 +000011Relative to 2.1.1, a large number of minor problems with 2.1.1 have
12been fixed, and so if you use 2.1.1 you should try 2.1.2. Users of
13the last stable release, 2.0.0, might also want to try this release.
jsewardbd0a6e42004-07-17 12:19:43 +000014
15The following bugs, and probably many more, have been fixed. These
16are listed at http://bugs.kde.org. Reporting a bug for valgrind in
17the http://bugs.kde.org is much more likely to get you a fix than
18mailing developers directly, so please continue to keep sending bugs
19there.
20
2176869 Crashes when running any tool under Fedora Core 2 test1
22 This fixes the problem with returning from a signal handler
jseward0400d4d2004-07-17 23:26:46 +000023 when VDSOs are turned off in FC2.
jsewardbd0a6e42004-07-17 12:19:43 +000024
jseward0400d4d2004-07-17 23:26:46 +00002569508 java 1.4.2 client fails with erroneous "stack size too small".
26 This fix makes more of the pthread stack attribute related
27 functions work properly. Java still doesn't work though.
jsewardbd0a6e42004-07-17 12:19:43 +000028
2971906 malloc alignment should be 8, not 4
30 All memory returned by malloc/new etc is now at least
31 8-byte aligned.
32
jsewarda6017a42004-07-17 23:44:35 +00003381970 vg_alloc_ThreadState: no free slots available
34 (closed because the workaround is simple: increase
35 VG_N_THREADS, rebuild and try again.)
36
jsewardbd0a6e42004-07-17 12:19:43 +00003778514 Conditional jump or move depends on uninitialized value(s)
38 (a slight mishanding of FP code in memcheck)
39
jsewarda6017a42004-07-17 23:44:35 +00004077952 pThread Support (crash) (due to initialisation-ordering probs)
41 (also 85118)
42
jsewardbd0a6e42004-07-17 12:19:43 +00004380942 Addrcheck wasn't doing overlap checking as it should.
4478048 return NULL on malloc/new etc failure, instead of asserting
4573655 operator new() override in user .so files often doesn't get picked up
4683060 Valgrind does not handle native kernel AIO
4769872 Create proper coredumps after fatal signals
4882026 failure with new glibc versions: __libc_* functions are not exported
4970344 UNIMPLEMENTED FUNCTION: tcdrain
5081297 Cancellation of pthread_cond_wait does not require mutex
5182872 Using debug info from additional packages (wishlist)
5283025 Support for ioctls FIGETBSZ and FIBMAP
5383340 Support for ioctl HDIO_GET_IDENTITY
5479714 Support for the semtimedop system call.
5577022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
5682098 hp2ps ansification (wishlist)
5783573 Valgrind SIGSEGV on execve
5882999 show which cmdline option was erroneous (wishlist)
5983040 make valgrind VPATH and distcheck-clean (wishlist)
jsewarda6017a42004-07-17 23:44:35 +00006083998 Assertion `newfd > vgPlain_max_fd' failed (see below)
6182722 Unchecked mmap in as_pad leads to mysterious failures later
6278958 memcheck seg faults while running Mozilla
jsewarda2c08002004-07-18 09:24:57 +00006385416 Arguments with colon (e.g. --logsocket) ignored
jsewardbd0a6e42004-07-17 12:19:43 +000064
65
66Additionally there are the following changes, which are not
67connected to any bug report numbers, AFAICS:
68
69* Rearranged address space layout relative to 2.1.1, so that
70 Valgrind/tools will run out of memory later than currently in many
71 circumstances. This is good news esp. for Calltree. It should
72 be possible for client programs to allocate over 800MB of
73 memory when using memcheck now.
74
jseward9cd978c2004-07-17 13:38:12 +000075* Improved checking when laying out memory. Should hopefully avoid
76 the random segmentation faults that 2.1.1 sometimes caused.
77
jsewardbd0a6e42004-07-17 12:19:43 +000078* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
79 support to the extent that V now works properly on NPTL-only setups.
80
81* Renamed the following options:
82 --logfile-fd --> --log-fd
83 --logfile --> --log-file
84 --logsocket --> --log-socket
85 to be consistent with each other and other options (esp. --input-fd).
86
87* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
88 improve the checking of other interface related ioctls.
89
jsewardbd0a6e42004-07-17 12:19:43 +000090* Fix building with gcc-3.4.1.
91
92* Remove limit on number of semaphores supported.
93
jsewardbd0a6e42004-07-17 12:19:43 +000094* Add support for syscalls: set_tid_address (258), acct (51).
95
96* Support instruction "repne movs" -- not official but seems to occur.
97
98* Implement an emulated soft limit for file descriptors in addition to
99 the current reserved area, which effectively acts as a hard limit. The
100 setrlimit system call now simply updates the emulated limits as best
101 as possible - the hard limit is not allowed to move at all and just
102 returns EPERM if you try and change it. This should stop reductions
103 in the soft limit causing assertions when valgrind tries to allocate
104 descriptors from the reserved area.
jsewarda6017a42004-07-17 23:44:35 +0000105 (This actually came from bug #83998).
jsewardbd0a6e42004-07-17 12:19:43 +0000106
nethercote76e8fd92004-07-21 10:37:31 +0000107* Major overhaul of Cachegrind implementation. First user-visible change
nethercote5e63bfb2004-07-17 12:49:53 +0000108 is that cachegrind.out files are now typically 90% smaller than they
nethercote76e8fd92004-07-21 10:37:31 +0000109 used to be; code annotation times are correspondingly much smaller.
110 Second user-visible change is that hit/miss counts for code that is
111 unloaded at run-time is no longer dumped into a single "discard" pile,
112 but accurately preserved.
jsewardbd0a6e42004-07-17 12:19:43 +0000113
114* Client requests for telling valgrind about memory pools.
115
116
117
jseward9cd978c2004-07-17 13:38:12 +0000118Developer (cvs head) release 2.1.1 (12 March 2004)
119~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsewardbd0a6e42004-07-17 12:19:43 +00001202.1.1 contains some internal structural changes needed for V's
jsewarde3e77042004-03-12 21:07:05 +0000121long-term future. These don't affect end-users. Most notable
122user-visible changes are:
123
124* Greater isolation between Valgrind and the program being run, so
125 the program is less likely to inadvertently kill Valgrind by
126 doing wild writes.
127
128* Massif: a new space profiling tool. Try it! It's cool, and it'll
129 tell you in detail where and when your C/C++ code is allocating heap.
130 Draws pretty .ps pictures of memory use against time. A potentially
131 powerful tool for making sense of your program's space use.
132
133* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
134 various signal/syscall things, and various problems with debug
135 info readers.
136
137* Support for glibc-2.3.3 based systems.
138
139We are now doing automatic overnight build-and-test runs on a variety
140of distros. As a result, we believe 2.1.1 builds and runs on:
141Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
142
143
144The following bugs, and probably many more, have been fixed. These
145are listed at http://bugs.kde.org. Reporting a bug for valgrind in
146the http://bugs.kde.org is much more likely to get you a fix than
147mailing developers directly, so please continue to keep sending bugs
148there.
149
15069616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
15169856 I don't know how to instrument MMXish stuff (Helgrind)
15273892 valgrind segfaults starting with Objective-C debug info
153 (fix for S-type stabs)
15473145 Valgrind complains too much about close(<reserved fd>)
15573902 Shadow memory allocation seems to fail on RedHat 8.0
15668633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
15775099 impossible to trace multiprocess programs
15876839 the `impossible' happened: disInstr: INT but not 0x80 !
15976762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
16076747 cannot include valgrind.h in c++ program
16176223 parsing B(3,10) gave NULL type => impossible happens
16275604 shmdt handling problem
16376416 Problems with gcc 3.4 snap 20040225
16475614 using -gstabs when building your programs the `impossible' happened
16575787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
16675294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
167 (REP RET)
16873326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
16972596 not recognizing __libc_malloc
17069489 Would like to attach ddd to running program
17172781 Cachegrind crashes with kde programs
17273055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
17373026 Descriptor leak check reports port numbers wrongly
17471705 README_MISSING_SYSCALL_OR_IOCTL out of date
17572643 Improve support for SSE/SSE2 instructions
17672484 valgrind leaves it's own signal mask in place when execing
17772650 Signal Handling always seems to restart system calls
17872006 The mmap system call turns all errors in ENOMEM
17971781 gdb attach is pretty useless
18071180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
18169886 writes to zero page cause valgrind to assert on exit
18271791 crash when valgrinding gimp 1.3 (stabs reader problem)
18369783 unhandled syscall: 218
18469782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
18570385 valgrind fails if the soft file descriptor limit is less
186 than about 828
18769529 "rep; nop" should do a yield
18870827 programs with lots of shared libraries report "mmap failed"
189 for some of them when reading symbols
19071028 glibc's strnlen is optimised enough to confuse valgrind
191
192
193
194
jseward43230652003-12-14 00:14:54 +0000195Unstable (cvs head) release 2.1.0 (15 December 2003)
196~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
198(Julian). It looks eminently usable, and given that it fixes some
199significant bugs, may well be worth using on a day-to-day basis.
2002.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
2018.2, RedHat 8.
202
2032.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
204handling of system calls and signals, and their interaction with
205threads. In general, the accuracy of the system call, thread and
206signal simulations is much improved. Specifically:
207
208- Blocking system calls behave exactly as they do when running
209 natively (not on valgrind). That is, if a syscall blocks only the
210 calling thread when running natively, than it behaves the same on
211 valgrind. No more mysterious hangs because V doesn't know that some
212 syscall or other, should block only the calling thread.
213
214- Interrupted syscalls should now give more faithful results.
215
216- Finally, signal contexts in signal handlers are supported. As a
217 result, konqueror on SuSE 9 no longer segfaults when notified of
218 file changes in directories it is watching.
219
220Other changes:
221
222- Robert Walsh's file descriptor leakage checks. When enabled,
223 Valgrind will print out a list of open file descriptors on
224 exit. Along with each file descriptor, Valgrind prints out a stack
225 backtrace of where the file was opened and any details relating to the
226 file descriptor such as the file name or socket details.
227 To use, give: --track-fds=yes
228
229- Implemented a few more SSE/SSE2 instructions.
230
231- Less crud on the stack when you do 'where' inside a GDB attach.
232
233- Fixed the following bugs:
234 68360: Valgrind does not compile against 2.6.0-testX kernels
235 68525: CVS head doesn't compile on C90 compilers
236 68566: pkgconfig support (wishlist)
237 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
238 69140: valgrind not able to explicitly specify a path to a binary.
239 69432: helgrind asserts encountering a MutexErr when there are
240 EraserErr suppressions
241
jseward0b12daf2003-12-14 14:35:28 +0000242- Increase the max size of the translation cache from 200k average bbs
243 to 300k average bbs. Programs on the size of OOo (680m17) are
244 thrashing the cache at the smaller size, creating large numbers of
245 retranslations and wasting significant time as a result.
246
jseward43230652003-12-14 00:14:54 +0000247
248
249Stable release 2.0.0 (5 Nov 2003)
250~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
251
2522.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
253improves support for SuSE 9 and the Red Hat "Severn" beta.
254
255- Further improvements to SSE/SSE2 support. The entire test suite of
256 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
257 20030307Z '-g -O -xW' now works. I think this gives pretty good
258 coverage of SSE/SSE2 floating point instructions, or at least the
259 subset emitted by Icc.
260
261- Also added support for the following instructions:
262 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
263 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
264
265- CFI support for GDB version 6. Needed to enable newer GDBs
266 to figure out where they are when using --gdb-attach=yes.
267
268- Fix this:
269 mc_translate.c:1091 (memcheck_instrument): Assertion
270 `u_in->size == 4 || u_in->size == 16' failed.
271
272- Return an error rather than panicing when given a bad socketcall.
273
274- Fix checking of syscall rt_sigtimedwait().
275
276- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
277
278- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
279 bytes long, when it could be shorter, which could cause false
280 positives.
281
282- Support use of select() for very large numbers of file descriptors.
283
284- Don't fail silently if the executable is statically linked, or is
285 setuid/setgid. Print an error message instead.
286
287- Support for old DWARF-1 format line number info.
288
289
290
291Snapshot 20031012 (12 October 2003)
292~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293
294Three months worth of bug fixes, roughly. Most significant single
295change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
296
29720031012 builds on Red Hat Fedora ("Severn") but doesn't really work
298(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
299get a working version out soon. It may or may not work ok on the
300forthcoming SuSE 9; I hear positive noises about it but haven't been
301able to verify this myself (not until I get hold of a copy of 9).
302
303A detailed list of changes, in no particular order:
304
305- Describe --gen-suppressions in the FAQ.
306
307- Syscall __NR_waitpid supported.
308
309- Minor MMX bug fix.
310
311- -v prints program's argv[] at startup.
312
313- More glibc-2.3 suppressions.
314
315- Suppressions for stack underrun bug(s) in the c++ support library
316 distributed with Intel Icc 7.0.
317
318- Fix problems reading /proc/self/maps.
319
320- Fix a couple of messages that should have been suppressed by -q,
321 but weren't.
322
323- Make Addrcheck understand "Overlap" suppressions.
324
325- At startup, check if program is statically linked and bail out if so.
326
327- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
328
329- Memcheck/addrcheck: minor speed optimisations
330
331- Handle syscall __NR_brk more correctly than before.
332
333- Fixed incorrect allocate/free mismatch errors when using
334 operator new(unsigned, std::nothrow_t const&)
335 operator new[](unsigned, std::nothrow_t const&)
336
337- Support POSIX pthread spinlocks.
338
339- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000340
341- Implemented more opcodes:
342 - push %es
343 - push %ds
344 - pop %es
345 - pop %ds
346 - movntq
347 - sfence
348 - pshufw
349 - pavgb
350 - ucomiss
351 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000352 - mov imm32, %esp
353 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000354 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000355 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000356
jseward43230652003-12-14 00:14:54 +0000357- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000358
sewardj90238792003-05-05 00:23:42 +0000359
sewardj945f39f2003-07-25 21:11:40 +0000360Snapshot 20030725 (25 July 2003)
361~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
362
363Fixes some minor problems in 20030716.
364
365- Fix bugs in overlap checking for strcpy/memcpy etc.
366
367- Do overlap checking with Addrcheck as well as Memcheck.
368
369- Fix this:
370 Memcheck: the `impossible' happened:
371 get_error_name: unexpected type
372
373- Install headers needed to compile new skins.
374
sewardje3dd2e02003-07-27 08:04:48 +0000375- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000376 passed to non-traced children.
377
sewardjb9eda952003-07-26 21:39:05 +0000378- Fix file descriptor leak in valgrind-listener.
379
sewardje3dd2e02003-07-27 08:04:48 +0000380- Fix longstanding bug in which the allocation point of a
381 block resized by realloc was not correctly set. This may
382 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000383
384
sewardj626fd892003-07-16 20:10:26 +0000385Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000386~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
387
sewardj626fd892003-07-16 20:10:26 +000038820030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000389This is the branch which will become valgrind-2.0. It contains
390significant enhancements over the 1.9.X branch.
391
392Despite this being a snapshot of the CVS head, it is believed to be
393quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
394-- and therefore suitable for widespread use. Please let us know asap
395if it causes problems for you.
396
397Two reasons for releasing a snapshot now are:
398
399- It's been a while since 1.9.6, and this snapshot fixes
400 various problems that 1.9.6 has with threaded programs
401 on glibc-2.3.X based systems.
402
403- So as to make available improvements in the 2.0 line.
404
sewardj626fd892003-07-16 20:10:26 +0000405Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000406
407- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
408 systems (SuSE 8.2, Red Hat 9). If you have had problems
409 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000410 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000411 matters. This snapshot seems stable enough to run OpenOffice.org
412 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
413 threaded app if ever I saw one.
414
415- Automatic generation of suppression records; you no longer
416 need to write them by hand. Use --gen-suppressions=yes.
417
sewardj21511802003-07-22 17:47:42 +0000418- strcpy/memcpy/etc check their arguments for overlaps, when
419 running with the Memcheck or Addrcheck skins.
420
421- malloc_usable_size() is now supported.
422
423- new client requests:
424 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
425 useful with regression testing
426 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
427 on real CPU (use with caution!)
428
sewardj9d916ed2003-07-14 23:38:40 +0000429- The GDB attach mechanism is more flexible. Allow the GDB to
430 be run to be specified by --gdb-path=/path/to/gdb, and specify
431 which file descriptor V will read its input from with
432 --input-fd=<number>.
433
sewardj21511802003-07-22 17:47:42 +0000434- Cachegrind gives more accurate results (wasn't tracking instructions in
435 malloc() and friends previously, is now).
436
sewardj9d916ed2003-07-14 23:38:40 +0000437- Complete support for the MMX instruction set.
438
439- Partial support for the SSE and SSE2 instruction sets. Work for this
440 is ongoing. About half the SSE/SSE2 instructions are done, so
441 some SSE based programs may work. Currently you need to specify
442 --skin=addrcheck. Basically not suitable for real use yet.
443
444- Significant speedups (10%-20%) for standard memory checking.
445
446- Fix assertion failure in pthread_once().
447
448- Fix this:
449 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
450 Assertion `ms_end >= ms_now' failed.
451
452- Implement pthread_mutexattr_setpshared.
453
454- Understand Pentium 4 branch hints. Also implemented a couple more
455 obscure x86 instructions.
456
457- Lots of other minor bug fixes.
458
sewardj626fd892003-07-16 20:10:26 +0000459- We have a decent regression test system, for the first time.
460 This doesn't help you directly, but it does make it a lot easier
461 for us to track the quality of the system, especially across
462 multiple linux distributions.
463
464 You can run the regression tests with 'make regtest' after 'make
465 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
466
467 == 84 tests, 0 stderr failures, 0 stdout failures ==
468
469 On Red Hat 8, I get this:
470
471 == 84 tests, 2 stderr failures, 1 stdout failure ==
472 corecheck/tests/res_search (stdout)
473 memcheck/tests/sigaltstack (stderr)
474
475 sigaltstack is probably harmless. res_search doesn't work
476 on R H 8 even running natively, so I'm not too worried.
477
478 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
479
480 == 84 tests, 2 stderr failures, 1 stdout failure ==
481 corecheck/tests/pth_atfork1 (stdout)
482 corecheck/tests/pth_atfork1 (stderr)
483 memcheck/tests/sigaltstack (stderr)
484
485 You need to run on a PII system, at least, since some tests
486 contain P6-specific instructions, and the test machine needs
487 access to the internet so that corecheck/tests/res_search
488 (a test that the DNS resolver works) can function.
489
sewardj9d916ed2003-07-14 23:38:40 +0000490As ever, thanks for the vast amount of feedback :) and bug reports :(
491We may not answer all messages, but we do at least look at all of
492them, and tend to fix the most frequently reported bugs.
493
494
495
sewardj37918822003-05-05 01:05:09 +0000496Version 1.9.6 (7 May 2003 or thereabouts)
497~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
498
499Major changes in 1.9.6:
500
501- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
502 RedHat 9, to name but two ...) It turned out that 1.9.5
503 had problems with threading support on glibc >= 2.3.2,
504 usually manifested by threaded programs deadlocking in system calls,
505 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
506 is the first valgrind which gives reasonable support for
507 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
508
509- Majorly expanded FAQ.txt. We've added workarounds for all
510 common problems for which a workaround is known.
511
512Minor changes in 1.9.6:
513
514- Fix identification of the main thread's stack. Incorrect
515 identification of it was causing some on-stack addresses to not get
516 identified as such. This only affected the usefulness of some error
517 messages; the correctness of the checks made is unchanged.
518
519- Support for kernels >= 2.5.68.
520
521- Dummy implementations of __libc_current_sigrtmin,
522 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
523 good enough to keep alive programs which previously died for lack of
524 them.
525
526- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
527
sewardj3d47b792003-05-05 22:15:35 +0000528- Fix bug in the DWARF2 debug line info loader, when instructions
529 following each other have source lines far from each other
530 (e.g. with inlined functions).
531
sewardj37918822003-05-05 01:05:09 +0000532- Debug info reading: read symbols from both "symtab" and "dynsym"
533 sections, rather than merely from the one that comes last in the
534 file.
535
536- New syscall support: prctl(), creat(), lookup_dcookie().
537
538- When checking calls to accept(), recvfrom(), getsocketopt(),
539 don't complain if buffer values are NULL.
540
541- Try and avoid assertion failures in
542 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
543
544- Minor bug fixes in cg_annotate.
545
546
547
sewardj90238792003-05-05 00:23:42 +0000548Version 1.9.5 (7 April 2003)
549~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550
551It occurs to me that it would be helpful for valgrind users to record
552in the source distribution the changes in each release. So I now
553attempt to mend my errant ways :-) Changes in this and future releases
554will be documented in the NEWS file in the source distribution.
555
556Major changes in 1.9.5:
557
558- (Critical bug fix): Fix a bug in the FPU simulation. This was
559 causing some floating point conditional tests not to work right.
560 Several people reported this. If you had floating point code which
561 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
562
563- Partial support for Red Hat 9. RH9 uses the new Native Posix
564 Threads Library (NPTL), instead of the older LinuxThreads.
565 This potentially causes problems with V which will take some
566 time to correct. In the meantime we have partially worked around
567 this, and so 1.9.5 works on RH9. Threaded programs still work,
568 but they may deadlock, because some system calls (accept, read,
569 write, etc) which should be nonblocking, in fact do block. This
570 is a known bug which we are looking into.
571
572 If you can, your best bet (unfortunately) is to avoid using
573 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
574 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
575
576Minor changes in 1.9.5:
577
578- Added some #errors to valgrind.h to ensure people don't include
579 it accidentally in their sources. This is a change from 1.0.X
580 which was never properly documented. The right thing to include
581 is now memcheck.h. Some people reported problems and strange
582 behaviour when (incorrectly) including valgrind.h in code with
583 1.9.1 -- 1.9.4. This is no longer possible.
584
585- Add some __extension__ bits and pieces so that gcc configured
586 for valgrind-checking compiles even with -Werror. If you
587 don't understand this, ignore it. Of interest to gcc developers
588 only.
589
590- Removed a pointless check which caused problems interworking
591 with Clearcase. V would complain about shared objects whose
592 names did not end ".so", and refuse to run. This is now fixed.
593 In fact it was fixed in 1.9.4 but not documented.
594
595- Fixed a bug causing an assertion failure of "waiters == 1"
596 somewhere in vg_scheduler.c, when running large threaded apps,
597 notably MySQL.
598
599- Add support for the munlock system call (124).
600
601Some comments about future releases:
602
6031.9.5 is, we hope, the most stable Valgrind so far. It pretty much
604supersedes the 1.0.X branch. If you are a valgrind packager, please
605consider making 1.9.5 available to your users. You can regard the
6061.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
607are no plans at all for further releases of the 1.0.X branch.
608
609If you want a leading-edge valgrind, consider building the cvs head
610(from SourceForge), or getting a snapshot of it. Current cool stuff
611going in includes MMX support (done); SSE/SSE2 support (in progress),
612a significant (10-20%) performance improvement (done), and the usual
613large collection of minor changes. Hopefully we will be able to
614improve our NPTL support, but no promises.
615