blob: cee88f6fb59b78e572312221d73b39d7b934ee33 [file] [log] [blame]
sewardj90238792003-05-05 00:23:42 +00001
sewardj945f39f2003-07-25 21:11:40 +00002Snapshot 20030725 (25 July 2003)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5Fixes some minor problems in 20030716.
6
7- Fix bugs in overlap checking for strcpy/memcpy etc.
8
9- Do overlap checking with Addrcheck as well as Memcheck.
10
11- Fix this:
12 Memcheck: the `impossible' happened:
13 get_error_name: unexpected type
14
15- Install headers needed to compile new skins.
16
sewardje3dd2e02003-07-27 08:04:48 +000017- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +000018 passed to non-traced children.
19
sewardjb9eda952003-07-26 21:39:05 +000020- Fix file descriptor leak in valgrind-listener.
21
sewardje3dd2e02003-07-27 08:04:48 +000022- Fix longstanding bug in which the allocation point of a
23 block resized by realloc was not correctly set. This may
24 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +000025
26
sewardj626fd892003-07-16 20:10:26 +000027Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +000028~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29
sewardj626fd892003-07-16 20:10:26 +00003020030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +000031This is the branch which will become valgrind-2.0. It contains
32significant enhancements over the 1.9.X branch.
33
34Despite this being a snapshot of the CVS head, it is believed to be
35quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
36-- and therefore suitable for widespread use. Please let us know asap
37if it causes problems for you.
38
39Two reasons for releasing a snapshot now are:
40
41- It's been a while since 1.9.6, and this snapshot fixes
42 various problems that 1.9.6 has with threaded programs
43 on glibc-2.3.X based systems.
44
45- So as to make available improvements in the 2.0 line.
46
sewardj626fd892003-07-16 20:10:26 +000047Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +000048
49- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
50 systems (SuSE 8.2, Red Hat 9). If you have had problems
51 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +000052 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +000053 matters. This snapshot seems stable enough to run OpenOffice.org
54 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
55 threaded app if ever I saw one.
56
57- Automatic generation of suppression records; you no longer
58 need to write them by hand. Use --gen-suppressions=yes.
59
sewardj21511802003-07-22 17:47:42 +000060- strcpy/memcpy/etc check their arguments for overlaps, when
61 running with the Memcheck or Addrcheck skins.
62
63- malloc_usable_size() is now supported.
64
65- new client requests:
66 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
67 useful with regression testing
68 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
69 on real CPU (use with caution!)
70
sewardj9d916ed2003-07-14 23:38:40 +000071- The GDB attach mechanism is more flexible. Allow the GDB to
72 be run to be specified by --gdb-path=/path/to/gdb, and specify
73 which file descriptor V will read its input from with
74 --input-fd=<number>.
75
sewardj21511802003-07-22 17:47:42 +000076- Cachegrind gives more accurate results (wasn't tracking instructions in
77 malloc() and friends previously, is now).
78
sewardj9d916ed2003-07-14 23:38:40 +000079- Complete support for the MMX instruction set.
80
81- Partial support for the SSE and SSE2 instruction sets. Work for this
82 is ongoing. About half the SSE/SSE2 instructions are done, so
83 some SSE based programs may work. Currently you need to specify
84 --skin=addrcheck. Basically not suitable for real use yet.
85
86- Significant speedups (10%-20%) for standard memory checking.
87
88- Fix assertion failure in pthread_once().
89
90- Fix this:
91 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
92 Assertion `ms_end >= ms_now' failed.
93
94- Implement pthread_mutexattr_setpshared.
95
96- Understand Pentium 4 branch hints. Also implemented a couple more
97 obscure x86 instructions.
98
99- Lots of other minor bug fixes.
100
sewardj626fd892003-07-16 20:10:26 +0000101- We have a decent regression test system, for the first time.
102 This doesn't help you directly, but it does make it a lot easier
103 for us to track the quality of the system, especially across
104 multiple linux distributions.
105
106 You can run the regression tests with 'make regtest' after 'make
107 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
108
109 == 84 tests, 0 stderr failures, 0 stdout failures ==
110
111 On Red Hat 8, I get this:
112
113 == 84 tests, 2 stderr failures, 1 stdout failure ==
114 corecheck/tests/res_search (stdout)
115 memcheck/tests/sigaltstack (stderr)
116
117 sigaltstack is probably harmless. res_search doesn't work
118 on R H 8 even running natively, so I'm not too worried.
119
120 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
121
122 == 84 tests, 2 stderr failures, 1 stdout failure ==
123 corecheck/tests/pth_atfork1 (stdout)
124 corecheck/tests/pth_atfork1 (stderr)
125 memcheck/tests/sigaltstack (stderr)
126
127 You need to run on a PII system, at least, since some tests
128 contain P6-specific instructions, and the test machine needs
129 access to the internet so that corecheck/tests/res_search
130 (a test that the DNS resolver works) can function.
131
sewardj9d916ed2003-07-14 23:38:40 +0000132As ever, thanks for the vast amount of feedback :) and bug reports :(
133We may not answer all messages, but we do at least look at all of
134them, and tend to fix the most frequently reported bugs.
135
136
137
sewardj37918822003-05-05 01:05:09 +0000138Version 1.9.6 (7 May 2003 or thereabouts)
139~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140
141Major changes in 1.9.6:
142
143- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
144 RedHat 9, to name but two ...) It turned out that 1.9.5
145 had problems with threading support on glibc >= 2.3.2,
146 usually manifested by threaded programs deadlocking in system calls,
147 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
148 is the first valgrind which gives reasonable support for
149 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
150
151- Majorly expanded FAQ.txt. We've added workarounds for all
152 common problems for which a workaround is known.
153
154Minor changes in 1.9.6:
155
156- Fix identification of the main thread's stack. Incorrect
157 identification of it was causing some on-stack addresses to not get
158 identified as such. This only affected the usefulness of some error
159 messages; the correctness of the checks made is unchanged.
160
161- Support for kernels >= 2.5.68.
162
163- Dummy implementations of __libc_current_sigrtmin,
164 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
165 good enough to keep alive programs which previously died for lack of
166 them.
167
168- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
169
sewardj3d47b792003-05-05 22:15:35 +0000170- Fix bug in the DWARF2 debug line info loader, when instructions
171 following each other have source lines far from each other
172 (e.g. with inlined functions).
173
sewardj37918822003-05-05 01:05:09 +0000174- Debug info reading: read symbols from both "symtab" and "dynsym"
175 sections, rather than merely from the one that comes last in the
176 file.
177
178- New syscall support: prctl(), creat(), lookup_dcookie().
179
180- When checking calls to accept(), recvfrom(), getsocketopt(),
181 don't complain if buffer values are NULL.
182
183- Try and avoid assertion failures in
184 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
185
186- Minor bug fixes in cg_annotate.
187
188
189
sewardj90238792003-05-05 00:23:42 +0000190Version 1.9.5 (7 April 2003)
191~~~~~~~~~~~~~~~~~~~~~~~~~~~~
192
193It occurs to me that it would be helpful for valgrind users to record
194in the source distribution the changes in each release. So I now
195attempt to mend my errant ways :-) Changes in this and future releases
196will be documented in the NEWS file in the source distribution.
197
198Major changes in 1.9.5:
199
200- (Critical bug fix): Fix a bug in the FPU simulation. This was
201 causing some floating point conditional tests not to work right.
202 Several people reported this. If you had floating point code which
203 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
204
205- Partial support for Red Hat 9. RH9 uses the new Native Posix
206 Threads Library (NPTL), instead of the older LinuxThreads.
207 This potentially causes problems with V which will take some
208 time to correct. In the meantime we have partially worked around
209 this, and so 1.9.5 works on RH9. Threaded programs still work,
210 but they may deadlock, because some system calls (accept, read,
211 write, etc) which should be nonblocking, in fact do block. This
212 is a known bug which we are looking into.
213
214 If you can, your best bet (unfortunately) is to avoid using
215 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
216 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
217
218Minor changes in 1.9.5:
219
220- Added some #errors to valgrind.h to ensure people don't include
221 it accidentally in their sources. This is a change from 1.0.X
222 which was never properly documented. The right thing to include
223 is now memcheck.h. Some people reported problems and strange
224 behaviour when (incorrectly) including valgrind.h in code with
225 1.9.1 -- 1.9.4. This is no longer possible.
226
227- Add some __extension__ bits and pieces so that gcc configured
228 for valgrind-checking compiles even with -Werror. If you
229 don't understand this, ignore it. Of interest to gcc developers
230 only.
231
232- Removed a pointless check which caused problems interworking
233 with Clearcase. V would complain about shared objects whose
234 names did not end ".so", and refuse to run. This is now fixed.
235 In fact it was fixed in 1.9.4 but not documented.
236
237- Fixed a bug causing an assertion failure of "waiters == 1"
238 somewhere in vg_scheduler.c, when running large threaded apps,
239 notably MySQL.
240
241- Add support for the munlock system call (124).
242
243Some comments about future releases:
244
2451.9.5 is, we hope, the most stable Valgrind so far. It pretty much
246supersedes the 1.0.X branch. If you are a valgrind packager, please
247consider making 1.9.5 available to your users. You can regard the
2481.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
249are no plans at all for further releases of the 1.0.X branch.
250
251If you want a leading-edge valgrind, consider building the cvs head
252(from SourceForge), or getting a snapshot of it. Current cool stuff
253going in includes MMX support (done); SSE/SSE2 support (in progress),
254a significant (10-20%) performance improvement (done), and the usual
255large collection of minor changes. Hopefully we will be able to
256improve our NPTL support, but no promises.
257