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