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