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