This package has been put together from a number of different pieces and I don't have time to edit all the README files together nicely. Most of them are just cover notes that came with the different parts. I believe all code except my own to have previously been posted to the net and to be in the public domain. My code is also in the public domain. What this is is a malloc package with tracing, so you can find where in your program there is a call to malloc() without a matching free(). This package is written in several separate source files so that a program won't have to load all of it if it doesn't need it. However, there may be cases where a function in the C runtime library calls a malloc() family function that your program doesn't call, and it will then go to the system version of the malloc() package for that function. This causes chaos. You can force a particular function to be loaded from the malloctrace.a library by putting, e.g., "-u _calloc" on the compile line just before the library name. Or you could avoid the problem permanently by editing the files malloc.h, malloc.c, free.c, calloc.c, init_trace.c, write_trace.c, and forget.c into one big file. The original malloc package was written by Bill Sebok. I then added the tracing, while Arthur David Olson, independently, added some bug fixes and enhancements. I then took Olson's version and added my tracing to it. For more details on the tracing see mallck.1 and TRACE_README in this directory. README is Sebok's original README. NEW_VERSION_README is Olson's cover note. README.mtest2 and README.mtest3 are cover notes for two malloc-tester programs (originally called mtest and looptest). (mtest1, included here without its own README file, is part of Sebok's package and was originally called tstmalloc). UNPORTABILITY CAVEATS - The tracing depends on being able to dump one's call stack. This is done by code in the file write_trace.c. It works on our Sun running SunOS 3.0 or 3.2, but is likely to need rewriting on your machine! There are two other things that work on our Sun but aren't portable: the types "char *", "long", and "unsigned" seem to be inter-assigned carelessly (I don't have time to delint this, either); and the BSDish library function bcopy() is used. Use at your own risk. Mark Brader, SoftQuad Inc., Toronto, August 25, 1988 { uunet!attcan | linus | decvax | watmath | pyramid } !utzoo!sq!msb msb@sq.com decwrl!utcsri!sq!msb