| |
| (Started this file at 14 Feb 02, 18:18 GMT) |
| |
| I decided it would be clearest for everybody (including me!) if I make |
| a record of patches that I apply. The starting point for all these is |
| valgrind-20020214; patches applied to it before that snapshot was |
| released are not recorded anywhere. |
| |
| |
| ------------------------------ 14 Feb 02 ------------------------------ |
| |
| Michael Matz <matz@kde.org>: |
| this fixes the leak (32bytes/demangled symbol)in cplus-dem.c. It also |
| again localizes the changes to libiberty's cp-demangle.c at the top with |
| some #defines. (It also has some unrelated changes like header guarding |
| and making symbol sets disjoint, these are minor and were needed for the |
| demangle_test program, and are local to the demangler) |
| |
| JRS: applied it, but it still seems to leak, running a g++2.96 compiled |
| program, at least (/usr/bin/kedit as installed with RH72). |
| (reenable VG_(show_all_arena_stats)() at vg_demangle.c:63 to see this) |
| |
| |
| Michael Matz <matz@kde.org> |
| here the patch for changing order of restorage of %esp to not trash |
| simulees stack |
| |
| |
| Simon Hausmann <hausmann@kde.org> |
| I attached a patch for the latest vg snapshot to implement better |
| support for shmat. Vg now correct marks the region returned by shmat |
| as read or read-writable (we have to do that blindly as there is no |
| way to figure out if another process initialized the data or not) . |
| Also the patch adds a paranoia check for the buffer passed with |
| shmctl. What's left todo is to make shmdt correctly mark the shm |
| segment as invalid again, but I see no easy way to figure out the |
| shm segment size just from the base address. Anyone? :) |
| Otherwise it'll probably require keeping a copy of the allocated |
| mappings inside vg -- shouldn't be expensive though. |
| [...] |
| Oops, my previous shm patch contained a little bug in that it called |
| must_be_readable/writable for shmctl even when the address was 0 |
| (which for example is the case when using IPC_RMID to remove a |
| shared memory segment, which is perfectly valid) . Attached the |
| updated patch that makes valgrinding Qt/Embedded apps possible :) |
| |
| |
| me: |
| Check for accessibility changes for first and last 64k of address |
| space after every system call, so as to catch syscall wrapper |
| bugs as soon as they happen |
| |
| |
| Simon Hausmann <hausmann@kde.org> |
| The socketpair handler checks that the two fds passed must be |
| readable, but I think the check should use must_be_writable instead |
| as the kernel does not read those values but fills them in. |
| |
| |
| Simon Hausmann <hausmann@kde.org> |
| Here's a patch that implements checking of arguments for |
| sendmsg/recvmsg, as part of the socket syscall. |
| [...] |
| Oops, I just realized that the recvmsg wrapper should mark the |
| fields of the received message as readable, as the kernel hopefully |
| initialized them :) |
| [...] |
| Corrected patch attached. |
| |
| |
| Nick Nethercote <njn25@cam.ac.uk> |
| [Implemented pushaw/pushal/popaw/popal] |
| |
| They're kind of ugly due to the special treatment of %esp, but there |
| didn't seem to be any elegant way around it. You may object to my |
| heinous magic number use with the registers. |
| |
| It seems to work ok, but I'd check it carefully if I were you. In |
| particular, I've only tried it with POPAD. (I think; gcc only accepts |
| 'popa' in assembler files, and according to the Intel docs will probably |
| choose between POPA and POPAD by looking at the D flag of the current |
| code segment's descriptor. I'm guessing this is 32-bits for my little |
| test program.) |
| |
| |
| Dirk Mueller <mueller@kde.org> |
| below a patch for checking if allocations are done correctly in C++ |
| applications. it checks if new is free'ed by delete, new [] by delete [], |
| and malloc, calloc, realloc by free(). |
| |
| It works for me <tm>, not intensively tested yet. |
| |
| |
| Michael Matz <matzmich@cs.tu-berlin.de> |
| [allow specification of length of backtrace, default 8] |
| > > another small patch. it just increases the stacktrace |
| > > length to 8 by default |
| > > (16 with --long-stacktraces=yes). a backtrace of 4 is |
| > > really short for KHTML, which often deeply nests calls. |
| > |
| > Wouldn't it be more usefull, to recognize a --bt-length=<number> |
| > option, instead of only two sizes? |
| |
| I.e. I would find the attached patch more usefull, which introduces an |
| --bt-size=<num> option (with docu ;-) ) but removes that long=yes/no |
| option. |
| |
| JRS: the final name for the option is --num-callers |
| |
| |
| ------------------------------ 15 Feb 02 ------------------------------ |
| |
| me: |
| fix assertion failure in VG_(malloc_aligned) (duh. duh. duh.) |
| |
| |
| Michael Matz <matzmich@cs.tu-berlin.de> |
| [finally fix the last space leak in the demangler] |
| this should now fix the rest of the leaks. The old c++ demangler is |
| really crappy code, therefor it took longer to find the leaks. ;) |
| |
| |
| Simon Hausmann <hausmann@kde.org> |
| Here are two micro patches for vg :) |
| |
| The first one fixes what I think is a bug: I think the result param |
| of llseek before the actual syscall should be checked for |
| writability instead of readability. |
| |
| The second one is a quick workaround for an assertion in the |
| demangler that I hit quite sometimes (I'm surprised noone else has |
| hit it before, maybe it's gcc3 specific though :) . I'm too lazy to |
| write a full strtol replacement for now ;) , so just returning an |
| error will keep the program running and output the mangled symbol |
| instead. |
| |
| |
| ------------------------------ 17 Feb 02 ------------------------------ |
| |
| me: |
| Implement cleverer semantics for 4-byte integer loads from partially |
| valid addresses, following complains from Coolo re spurious warnings |
| from gcc-inlined strlen()s. As part of this, hardwire the default |
| behaviour of --bad-addr-value and get rid of this flag entirely. |
| New flag --partial-loads-ok=no|yes [default yes] controls use of |
| new semantics. Also as a result, stop recommending people use |
| --sloppy-malloc=yes by default. |
| |
| me: |
| Options are now read from env var VALGRIND_OPTS. |
| Also remove need to edit hardware install dir in shell script. |
| |
| |
| Michael Matz <matzmich@cs.tu-berlin.de> |
| Simon Hausmann <hausmann@kde.org> |
| this fixes some leaks in the v3 demangler found by Simon (Julian: i.e. |
| those we couldn't possibly run into, as we use v2 demangling). |
| |
| |
| ------------------------------ 18 Feb 02 ------------------------------ |
| |
| me: |
| Tighten up the conditions for which --partial-loads-ok=yes is allowed |
| |
| me: |
| Error management: slow down collecting errors after the 50th |
| and stop altogether after the 500th |
| |
| me: |
| Implement --workaround-gcc296-bugs, so RH 7.X and Mandrake users |
| can use their default compilers. |
| |
| |
| ------------------------------ 20 Feb 02 ------------------------------ |
| |
| me: |
| Massive overhaul of the signal machinery so that signals can be |
| delivered to the client even when it is blocked in a system call. |
| This fixes the kmail-deadlocks-on-valgrind problem. |
| |
| ------------------------------ 21 Feb 02 ------------------------------ |
| |
| me: |
| Implement GDB attachment to the program. |
| |
| Stephan Kulow <coolo@kde.org> |
| Implement a few more syscall wrappers |
| |
| ------------------------------ 24 Feb 02 ------------------------------ |
| |
| me: |
| Cleanup of the signal machinery. Now we deal with signals purely |
| at the kernel interface, rather than muddying glibc's and the kernel's |
| conflicting concepts of some of the calls and structures. |
| |
| Kevin Dwyer <kevin@pheared.net> |
| Implement bazillions of syscall wrappers for ioctls |
| |
| me: |
| minor cleanups in vg_memory.c |
| |
| ------------------------------ 4 Mar 02 ------------------------------- |
| |
| This file is falling significantly behind reality. |
| |
| Me: get rid of this pointless and incorrect assert: |
| vg_memory.c:441 (set_address_range_perms): Assertion `len < 30000000' failed. |
| |
| Me: remove incorrect assert: |
| vg_assert(u_in->flags_w != FlagsEmpty); |
| do to with instrumentation of RCL/RCR |
| tracked down by Kevin Ryde <user42@zip.com.au> |
| |
| Malcolm Studd <mestudd@uwaterloo.ca> |
| Sanjay Ghemawat <sanjay@google.com> |
| Implement pread (180) |
| |
| Byrial Jensen <byrial@image.dk> |
| Implement getsid (147) |
| Implement TCFLSH |
| |
| Me |
| Implement pause (29) |
| |
| ------------------------------ 6 Mar 02 ------------------------------- |
| |
| Martin Nicolay <martin@osm-gmbh.de> |
| Implement fstatfs (100) |
| Implement ioctl FIOASYNC |
| Implement ioctl SIOCSPGRP (was previously noted-but-unhandled) |
| |
| Sanjay Ghemawat <sanjay@google.com> |
| Implement sync (36) |
| Make mallopt() into a no-op, rather than panic |
| |
| ------------------------------ 7 Mar 02 ------------------------------- |
| |
| Me |
| Write a great deal of technical docs about Valgrind internals |
| See docs/techdocs.html |
| |
| Me |
| Complete renaming of the kernel interface (vg_kerneliface.h) |
| definitions. |
| |
| "Byrial Jensen" <byrial@image.dk> |
| Use kernel rather than glibc sizes for struct termios |
| |
| Martin Jones <mjones@trolltech.com> |
| Implement ioctl MIXER_WRITE(0) |
| |
| Jon Trowbridge <trow@ximian.com> |
| Implement syscall pwrite (181) |
| |
| Me |
| Revamp the leak detector; fix various segfaults and bus errors in |
| it, and add the --show-reachable=no|yes flag, which makes it more |
| useful. |
| |
| ------------------------------ 8 Mar 02 ------------------------------- |
| |
| Me |
| Split up huge basic blocks into pieces, to avoid this: |
| vg_main.c:495 (vgPlain_create_translation_for): Assertion |
| `trans_size > 0 && trans_size < 65536' failed |
| |
| Crispin Flowerday <cflowerday@zeus.com> |
| Implement syscall sendfile (187) |
| Allow accept to have NULL 3rd argument |
| |
| Me |
| Write some more tech docs on the instrumentation and JITter |
| |
| ----------------------------- 10 Mar 02 ------------------------------- |
| |
| Crispin Flowerday <cflowerday@zeus.com> |
| SYS_SOCKETPAIR: on success, mark file descriptors as readable |
| |
| Ulrich Drepper <drepper@redhat.com> |
| Be cleverer on SYS_CONNECT |
| |
| Me |
| Fix strange parse error at vg_symtab2.c:1017 |
| Complete tech docs to do with the instrumenting JITter |
| Write tech docs re future ideas |
| |
| ----------------------------- 11 Mar 02 ------------------------------- |
| |
| Me |
| Fix some compile problems on Debian Potato, and add some supps |
| |
| Julian Brown <brown@cs.bris.ac.uk> |
| Handle ioctl 0x40045431 |
| |
| ----------------------------- 12 Mar 02 ------------------------------- |
| |
| Martin Burchell <martin.burchell@antlimited.com> |
| Some ioctls. |
| |
| Crispin Flowerday <cflowerday@zeus.com> |
| Improved handling of SIOCGIFCONF. |
| |
| Frank Zago <fzago@greshamstorage.com> |
| Various ioctls for the SCSI generic (sg) driver. Currently #if 0'd. |
| |
| Me |
| Fix obscure simulated CPU bug causing this: |
| -1: CMOVW t34, t36 (-rOSZACP) |
| valgrind: vg_to_ucode.c:4197 (disInstr): Assertion `sane' failed. |
| (Spotted by Thorsten Schnebeck <thorsten.schnebeck@gmx.net>) |
| |
| Me |
| Add yet more suppressions to linux24.supp |
| |
| Me [subrev b only] |
| In the leak checker, use __builtin_{setjmp,longjmp} instead of the |
| glibc (pthread) versions. This avoids a subtle memory corruption |
| problem caused by pthread_longjmp (or whatever it is called), which |
| finally manifests itself in this assertion failure: |
| vgPlain_primary_map[i] == & vg_distinguished_secondary_map |
| Many thanks to Michael Matz for coming up with an easy solution |
| which saved me hours of pissing around. |
| |
| ----------------------------- 15 Mar 02 ------------------------------- |
| |
| Stephan Kulow <coolo@kde.org> |
| Ioctls TIOCGPTN and TIOCSPTLCK |
| |
| Frank Zago <fzago@greshamstorage.com> |
| Various ioctls for the SCSI generic (sg) driver; these are now engaged. |
| |
| Harri Porten <porten@trolltech.com> |
| Fix "tiny omission" in debug outputs in vg_clientmalloc.c. |
| |
| Wolfram Gloger <wg@malloc.de> |
| mallopt returns 1 on success, not 0. |
| Implement __posix_memalign. |
| |
| Alasdair G Kergon <agk@arachsys.com> |
| Syscalls |
| setfsgid (139), setregid(71), setresuid(164), setfsuid(138). |
| (argc,argv,envp) hack: reject candidate alignments giving argc==0. |
| |
| Malte Starostik <malte@kde.org> |
| Various ioctls, including some ISDN ones. |
| |
| Richard Moore <rich@xmelegance.org> |
| Syscalls mlockall (152), munlockall (153), sched_get_priority_max (159), |
| sched_getscheduler (156), NR_sched_setscheduler (157). |
| Ioctl SG_IO. |
| Print ioctl numbers in hex. |
| |
| Me |
| Syscall _sysctl (149). |
| |
| Aaron M. Ucko <amu@alum.mit.edu> |
| Use the size/dir info encoded in the top 16 bits of an ioctl number, |
| where appropriate. |
| |
| Dirk Mueller <dirk@kde.org> |
| Syscall setfsuid32 (215), and bazillions of ioctls, mostly linux |
| soundcard ones. |
| |
| Me |
| (following request from Dirk Mueller) |
| Rehash of context management system. Now --num-callers= accepts |
| values from 2 to 50. Also --leak-resolution=low|med|high adjusts |
| how the leak detector presents results. RTFM ... |
| |
| ----------------------------- 15 Mar 02 second snapshot (0315b) ------- |
| |
| Me |
| Allow suppression of invalid free and mismatching free errors. |
| |
| Resurrect the internal profiling stuff (VG_PROFILE) and then fail |
| to find anything obvious that I could speed up :-( |
| |
| Start playing with using AMD cache prefetch insns as described |
| in docs/techdocs.html. |
| |
| Wrap ioctl SNDCTL_DSP_GETSPDIF in #ifdef; apparently undefined in |
| RH 7.2. |
| |
| ----------------------------- 17 Mar 02 ------------------------------- |
| |
| Me |
| New flag -q --quiet, so it just prints error messages and nothing |
| else |
| |
| Experimental feature: allow clients to set/check memory range |
| permissions. Read documentation pertaining to the --client-perms |
| flag. |
| |
| ----------------------------- 19 Mar 02 ------------------------------- |
| |
| Harri Porten <porten@trolltech.com> |
| Syscalls fchown (95), fchown32 (207) |
| |
| Ulrich Drepper <drepper@redhat.com> |
| Syscall ftruncate64 (194) |
| |
| <hansen> (?? on irc; can't remember) |
| Syscall chown32 (212) |
| |
| Me |
| Modify implementation of "sahf" insn, so that the instrumenter |
| creates code which checks the definedness of just %AH rather than |
| all of %EAX. Fixes a spurious warning reported by Daniel |
| Veillard <veillard@redhat.com>. |
| |
| ----------------------------- 20 Mar 02 ------------------------------- |
| |
| Me |
| Allow suppressions with a single top-stack-frame spec, to help folks |
| who have to suppress errors in libraries compiled with |
| -fomit-frame-pointer. |
| |
| Implement x86 "das" insn. Stranger than strange. |
| |
| Adam Gundy <arg@cyberscience.com> |
| ioctls TCSETA, TCGETA. |
| |
| ----------------------------- 24 Mar 02 ------------------------------- |
| |
| Move to putting stuff in ChangeLog. This file finishes here. |