2007-05-14 Gray Watson <> * Removed some left-over references to the dmalloc.info file. Thanks Bernard. * Fixed some unsigned/signed issues in one of the dmalloc_t tests. Thanks Bernard. * Fixed problems with configure and SL_LINK_OBJS. Thanks Bernard. * Releasing dmalloc version 5.5.2. 2007-03-25 Gray Watson <> * Fixed some problems with str[n]dup argument checking. * Releasing dmalloc version 5.5.1. 2007-03-24 Gray Watson <> * Fixed bug where LOG_PNT_SEEN_COUNT set to 0 caused segfault in dmalloc_examine. dmalloc_t was also not handling the setting appropriated. * Fixed bug with the checking of the MAX_FILE_LENGTH. 2007-03-23 Gray Watson <> * Revamped the chunk.c tests for user_pnt space. Added support for strnlen sizing. Added better checking of non-exact user pointers. * Added dmalloc_verify_pnt_strsize to support strnlen size testing. 2007-03-22 Gray Watson <> * Added missing DMALLOC_FUNC_CHECK routines: atoi, atol, memmove * Added a number of special checks for DMALLOC_FUNC_CHECK stuff. * Fixed all of the DMALLOC_FUNC_CHECK arguments thanks to Nickolai. 2007-03-12 Gray Watson <> * Improved some documents after user feedback. Thanks Renny. 2007-02-08 Gray Watson <> * Releasing dmalloc version 5.5.0. 2006-03-27 Gray Watson <> * Fixed a problem with arg-check dmalloc code and check-fence. 2006-03-23 Gray Watson <> * Fixed a section of the manual about Cygwin thanks to Pierre. * Fixed a problem with Cygwin env parsing. Thanks to Pierre and others. 2005-12-21 Gray Watson <> * Added a section on dumping core in the manual. * Added a number of regression tests for the arg-check code. 2005-12-19 Gray Watson <> * Fixed some problems with function argument checking and length arguments. The library was not handling strncmp correctly for example. * Added handling of strndup function. * Added overlapping memory check for memcpy if memmove exists. * Added __FILE__ and __LINE__ arguments to function checks. Not sure why they weren't there earlier. 2005-12-18 Gray Watson <> * Added patches to [hopefully] improve the building under Mac OSX. Thanks to Terry. * Added dmalloc_get_stats function to report on internal heap stats. Thanks to Sam. 2005-12-17 Gray Watson <> * Fixed a problem with the RPM .spec file. 2005-11-30 Gray Watson <> * Fixed a problem with double free not reporting ERROR_ALREADY_FREE. This was confusing. 2005-10-27 Gray Watson <> * Made some changes to the docs to address the possible mmap issues. * Added better checking for mmap compatibility during autoconfig. 2005-10-15 Gray Watson <> * Added a section to the startup docs about the .tgz file extension. 2005-07-26 Gray Watson <> * Improved some of the startup docs and installed a new version of texi2html. The old one was hiding the NOTE entries. 2005-06-05 Gray Watson <> * Improved the usage output for dmalloc. Thanks to murf. * Improved some of the error values to better identify internal dmalloc errors. * Fixed problem where if LARGEST_ALLOCATION is set to 0 the test program still checks it. Whoops. Thanks to sbied. 2005-03-18 Gray Watson <> * Increased the basic block default to 32k. * Fixed some documentation. * Added better error code output in dmalloc_t. * Fixed the global Makefile to install libs as 755 not 644. 2005-01-11 Gray Watson <> * Added some fixes for Compaq's C compiler, some include ordering fixes, and some C++ compiler defines. Thanks Burl. 2004-12-03 Gray Watson <> * Improved dmalloc_t to better detect and test a small heap area. 2004-10-19 Gray Watson <> * Releasing dmalloc version 5.4.2. * Refined the definition of the 'alloc-blank' and 'free-blank' tags. The 'alloc-blank' token clear various parts of the allocation block when it is allocated. The 'free-blank' token clears a pointer when it is freed. * Also, the library was clearing the user spaces of an allocated chunk with the alloc-blank character and the non-user spaces with the free-blank character. This seemed confusing and wrong so now all sections of an allocated chunk are cleared with the alloc-blank character. * Fixed a couple of longer standing stupid bugs via feedback from Philippe. Thanks dude. 2004-10-12 Gray Watson <> * Releasing dmalloc version 5.4.1. * Found and fixed a stupid little test bug so re-released as 5.4.1. * Releasing dmalloc version 5.4.0. * Added return.h support for ARM processors from Silvester Erdeg. * Improved the manual a bit. 2004-09-13 Gray Watson <> * Made allocating zero size chunks the default. 2004-08-13 Gray Watson <> * Fixed some missing ; and a int/unsigned-int bug from feedback from Joe Buehler. * Added return.h support for AIX 4.3 RS/6000 from Joe Buehler. * Added backwards compatibility (ugh) to %d for logfile name. 2004-07-10 Gray Watson <> * Starting release of 5.4.0 with beta. 2004-07-09 Gray Watson <> * Removed force-linear token because made invalid with mmap addition. * Removed the growing up testing and other restrictions for the heap because mmap made it invalid. Drastically reduced the various up and down macros and associated testing. * Added mmap usage inside of the library. Should it be the default? 2004-07-08 Gray Watson <> * Removed auto-seeding of internal random with variable seed. This was creating random addresses for programs making it hard to debug. 2004-07-01 Gray Watson <> * Added bigger and better debugging server section to the manual. * Added header/footer to online manual. 2004-06-29 Gray Watson <> * Really improved the logging of error information about pointers. Better formats, added prev/next for fence post errors, etc.. 2004-06-07 Gray Watson <> * Added return.h support for ia64 machine type from Didier Remy. 2004-04-09 Gray Watson <> * NOTE: next release I should increase the maximum source file length from 10k to 30k or something. * Fixed some typos in the docs and created a new gdb translate return-address section. Thanks Luk. 2004-02-18 Gray Watson <> * Fixed info install with feedback from Matt Fuller. Thanks. 2004-01-31 Gray Watson <> * Added compat and arg_checking of atoi, atol, and memmove. Thanks to Guy (guyresh) for pointing out the omissions. * Added arg checking to internal strdup functions. * Moved argv.c code to use loc_snprintf. 2004-01-28 Gray Watson <> * Releasing dmalloc version 5.3.0. * Fixed a bad bug where calls to _dmalloc_chunk_pnt_check from the arg_check.c functions were not locking. Ugh. Thanks much to Guy (guyresh). * Added dmalloc_verify_pnt function for proper external pointer checking. 2004-01-14 Gray Watson <> * Added a dmalloc_memory_allocated function to assist with the checking of the memory size start feature. * Added automatic checking of the start at file:line, iteration, and memory size features. * Added a --start-size argument to dmalloc to start the library checking the heap after we allocate a certain size of memory. Thanks to andyc_2k. * Added some more documentation about destructors. * Added a check-shutdown token and support to check the pointers heap when we shutdown the library. Thanks to Charles for the idea. 2003-11-23 Gray Watson <> * Added dmalloc_count_changed function plus tests. Thanks to Brian O'Kelley. 2003-11-20 Gray Watson <> * Added some more error code documentation. * Added ability to disable the LARGEST_ALLOCATION setting by defining it to be 0. 2003-11-18 Gray Watson <> * Released dmalloc version 5.2.4. * Fixed bug with check-fence and check-funcs interaction. Thanks to John Hetherington. 2003-11-17 Gray Watson <> * Added support for rc shell. Thanks to Michael Haardt. * Fixed a logfile NULL pointer printf. Thanks to John Hetherington. 2003-10-17 Gray Watson <> * Fleshed out the error code documentation. 2003-10-06 Gray Watson <> * Fixed Makefile.in to properly refer to the documents directory. Whoops. Thanks to Mike Castle. 2003-10-04 Gray Watson <> * Improved the docs about alias creation and usage. 2003-10-01 Gray Watson <> * Added testing for destructors in configure. 2003-09-29 Gray Watson <> * Releasing dmalloc version 5.2.3. 2003-09-12 Gray Watson <> * Added new GetEnvironmentVariableA Cygwin call. Thanks to Rolf Banting. 2003-09-10 Gray Watson <> * Added quick checks for the constructor attribute. 2003-09-09 Gray Watson <> * Removed find_slot function in chunk.c since it was only used once. 2003-09-08 Gray Watson <> * Changed the configure script to define the HAVE_... include defines to 0 or 1. Thanks to Brian Schreder. * Removed usage of environ (duh) from dmalloc_argv.c. Thanks to Brian Schreder. * Added better dmalloc.h processing. 2003-09-08 Gray Watson <> * Releasing dmalloc version 5.2.2. * Added a Cygwin section to the manual. * Added GETENV_SAFE testing for Cygwin environments. * Added a new ERROR_NOT_START_BLOCK (30) errno for addresses which are within an allocation but not pointing to the start of the block. * Worked a bit more on the function pnt checking code after some more feedback from Richard Colley. 2003-09-06 Gray Watson <> * Improved the pnt checking code to properly check free space below and above an allocation. Added regression tests for this. 2003-09-05 Gray Watson <> * Fixed possible lock leak in the shutdown code. Thanks to TJ Saunders. * Fixed bug in function pnt checking code. Not sure when this broke. Thanks to Philippe Roger. 2003-08-04 Gray Watson <> * Removed references to dmalloc leap. 2003-07-23 Gray Watson <> * Changed the installing of libraries to install-data. 2003-07-08 Gray Watson <> * Releasing version 5.2.1. 2003-06-20 Gray Watson <> * Fixed problems with macro arguments not in () thanks to Paul Hurtley. 2003-06-18 Gray Watson <> * Fixed a problem with strdup not returning char *. Thanks to Dan Nelson, Juhani Rautiainen, and Paul Hurtley. 2003-06-10 Gray Watson <> * Releasing version 5.2.0. * Renamed the "max memory space wasted" to "max unused memory space" to indicate that it is not the users fault. * Improved the admin and extern block accounting. * Added PDF doc files to the installation. * Fixed a problem with the global Makefile and dmalloc_t. Thanks to Bert Deknuydt. * Added new logfile expansion of %u as getuid() output. 2003-06-09 Gray Watson <> * Added detection of gethostname() function for %h logpath handling. * Added new logfile process with %h hostname, %t time, %p process-id, and %i for thread-id. * Removed the old logfile % processing. %d, %l, or %u no longer expands to the pid. * Added LOG_PID to drop the pid on each line of the logfile. * Added LOG_REOPEN to reopen the logfile when the pid of the process changes as with a fork. Thanks to James Hawtin. * Renamed the LOG_ITERATION_COUNT to LOG_ITERATION in settings.dist. * Renamed the STORE_SEEN_COUNT to be LOG_PNT_SEEN_COUNT. * Renamed the STORE_ITERATION_COUNT to be LOG_PNT_ITERATION. * Renamed the STORE_TIME to be LOG_PNT_TIME. * Renamed the STORE_TIMEVAL to be LOG_PNT_TIMEVAL. * Renamed the LOG_THREAD_ID to be LOG_PNT_THREAD_ID. * Improved the log_stats and log_changed output. 2003-06-08 Gray Watson <> * Releasing version 5.1.0. * Fixed the FREED_POINTER_DELAY functionality. * Removed PROTECT_BLOCKS from settings.dist because was unused. * Added the tsecs perl script to convert epoch seconds time to ctime output. * Removed the check-lists debug token which was not being used with the new heap organizations. * Fixed the never-reuse functionality and added checks to dmalloc_t for it. * Added checks to dmalloc_t for the realloc-copy functionality. * Fixed a problem where a call to dmalloc_log_changed would wipe out allocate table information. Improved other table functions. * Improved the stats output a bit. * Added additional checks to dmalloc_t for wierd realloc and free problems. 2003-06-06 Gray Watson <> * Expanded the arguments to dmalloc_examine to return more information about the pointer. This was explicitly needed to better test the library's setting of the values. * Found and fixed a problem where the last-used mark was not being set properly. Added checks to dmalloc_t for this. * Found and fixed a bad problem where the leaked memory was not being reported correctly. Very bad. Added checks in dmalloc_t for this. 2003-06-04 Gray Watson <> * Releasing dmalloc version 5.0.2. * Fixed some problems and improved the code in dmalloc_t. * Integrated an internal random number generator since random() often calls malloc. Ugh. 2003-05-22 Gray Watson <> * Removed protection filler to not confuse stuff. 2003-05-21 Gray Watson <> * Improved some of the configure script internals. * Added support for a.exe and other cc output forms for Windoze. 2003-05-20 Gray Watson <> * Releasing dmalloc version 5.0.1. * Updated configure.ac script. * New texinfo.tex macros. 2003-05-19 Gray Watson <> * Added dmalloc_page_size() function. * Improved the auto-testing in dmalloc_t. * Found a [bad] problem with putting pointers back on the free list. * Added some checking of pointers on the free list. * Removed DEBUG_NOT_REMOVABLE and DEBUG_NOT_ADDABLE flags. * Added the per-pointer checking for cleared free memory. * Compressed the per-pointer admin structure by 8 bytes. * Cleaned up the production of dmalloc.h.3 from fillproto file. 2003-05-16 Gray Watson <> * Releasing dmalloc version 5.0.0. 2003-05-14 Gray Watson <> * Removed debug_val.h and error_str.h. * Lots of bugs fixed. * Removed a number of old error codes. 2003-05-13 Gray Watson <> * Deprecated log-blocks and heap-check-map debug tokens. * Removed dmalloc_lp.[ch] stuff. * Added -M --memory-limit argument to dmalloc and ability to limit the library from allocating more than a certain number of bytes. * Getting ready for a huge checkin after a good bunch of work. 2002-06-06 Gray Watson <> * Added a currently in use stats to log-stats. Thanks Bernard. 2002-02-27 Gray Watson <> * Fixed some literal ranlib entries in the Makefile.in thanks to Ralf Fassel. 2002-02-24 Gray Watson <> * Removed the USE_DMALLOC_LEAP functionality. This was causing pains internally and I needed to simplify some of the sections. I apologize for those folks who used this a lot. 2002-02-14 Gray Watson <> * Added a function to close and re-open the dmalloc logfile when you process a new set of environmental flags. * Added a section to the docs about debugging daemon and CGI processes. 2002-01-28 Gray Watson <> * Made some cosmetic improvements to the configure.in script. 2001-11-30 Gray Watson <> * Made free(0L) not an error by default. I've been swayed by public pressure. * Removed short token support. * Did some more work on testing and chunk.c changes. 2001-07-18 Gray Watson <> * Added better autoconf checking of thread libraries to include FreeBSD's non-portable libc_r. Grrr. Thanks to Steve Roberts. 2001-07-12 Gray Watson <> * Added dmalloc_debug_setup function with which you can set the options with a function and not just the environmental variable. * Finally got the main line compiling again. Ugh. Chunk code looks a lot better however. * Before this time I've changed significantly the way the chunk routines account for pointers. Now every pointer has a flags field which says whether fence post checking should be applied to it. 2001-05-23 Gray Watson <> * Renamed _dmalloc_logpath to dmalloc_logpath to match the documentation and dmalloc.h. Thanks Christoph. 2001-05-21 Gray Watson <> * Solved problem with dmalloc_t and no sbrk. * Added INTERNAL_MEMORY_SPACE setting to the settings.dist file to help people with no sbrk function. 2001-03-29 Gray Watson <> * Fixed some additional problems with start-file, start-count, and interval. 2001-03-28 Gray Watson <> * Added the 'How It Works' section to the manual. * Removed necessity of strcat. * Removed use of strcpy internally. * Fixed problem with use of start-count and start-file not disabling the check-heap flag. Mon Feb 26 12:17:25 2001 Gray Watson <> * Releasing dmalloc version 4.8.2. * Installed new configure script to remove C++ requirement. Sun Feb 25 18:58:37 2001 Gray Watson <> * Making major changes to a number of routines. Thu Feb 22 19:24:38 2001 Gray Watson <> * Added more information to heap-check error messages on freed memory overwritten. This is now possible since I unrolled the unions from chunk_loc.h. Thanks to Robert Nielsen for pointing out this oversite. Wed Feb 21 20:16:32 2001 Gray Watson <> * Added strings to identify if the library was compiled with LOCK_THREADS enabled. Thu Nov 30 19:01:10 2000 Gray Watson <> * Added heap checking when we shutdown if check-blank is enabled. This will verify that all of the freed memory was not overwritten. Mon Nov 27 19:01:10 2000 Gray Watson <> * Added a separate ALLOC_BLANK_CHAR and FREE_BLANK_CHAR to the settings.dist file. Now the default 0xc5 character has been replaced with 0xda for dmalloc-allocated memory and 0xdf for dmalloc-freed memory. Tue Nov 14 15:09:02 2000 Gray Watson <> * Releasing dmalloc version 4.8.1. * Added --enable-shlib to configure which enables the building of shared libraries. * Added autoconf handling of the shlibdir for installing of shared libraries. Mon Nov 13 10:47:21 2000 Gray Watson <> * Added improvements to the shared library creation in the Makefile. * Fixed the #ident "..."; semi-colon problem. Thanks to Jonathan. Fri Nov 10 10:27:23 2000 Gray Watson <> * Releasing dmalloc version 4.8.0. Thu Nov 9 19:58:56 2000 Gray Watson <> * Added OpenBSD port information. Hopefully this will be close to Free/Net/... BSD as well. Tue Nov 7 11:39:26 2000 Gray Watson <> * Renamed malloc.h to malloc_funcs.h to avoid system conflicts. * Made log-unknown the default and depreciated the token. Added a log-known token to _only_ report on known (file/line) memory. * Removed INSTALL.1 file because it was basically empty. * Added Troubleshooting section to the INSTALL manual. Tue Oct 10 19:03:14 2000 Gray Watson <> * Did a pre-release of 4.7.2 with the autoconfigure handling for VA Linux release. Thanks guys. * Reorged dmalloc.h.3. Ugh. * malloc_verify and dmalloc_verify now return [D]MALLOC_VERIFY_[NO]ERROR. * Just about every function now initializes the library. This was not the case before with some information routines. * dmalloc_debug now takes an unsigned-int flags and returns the old debug flag value. debug_current now returns an unsigned int flag value. * Added autoconfig handling of #ident. I really hate Unix sometimes for its blatant disregard for anything approaching a standard. Idiots. Wed Sep 13 14:24:46 2000 Gray Watson <> * Fixed a bug in chunk.c found by Ian Badcoe. * Improved the displaying of tokens my dmalloc utility. Tue Jul 25 11:57:49 2000 Gray Watson <> * Releasing dmalloc version 4.7.1. * Fixed problem with check-blank being specified but not free-blank or alloc-blank. I thought I fixed this before. Mon Jul 24 15:30:04 2000 Gray Watson <> * Releasing dmalloc version 4.7.0. * Added support for --disable-cxx and --enable-threads for turning on or off C++ and thread support. Fri Jul 21 17:00:25 2000 Gray Watson <> * Added autoconfiguration code to see if the return macros work for an architecture. * Renamed USE_RET_ADDRESS to USE_RETURN_MACROS in return.h. * Added threaded C++ library support to Makefile. Tue Jun 20 18:30:55 2000 Gray Watson <> * Fixed problems with -p and -m not setting the debug flags. * Added 'force-linear' token and depreciated the 'allow-nonlinear' token. Non-linear heaps really are the default these days (on AIX for example). Now, you can enable the force-linear if you want to ensure a linear heap. Wed May 17 11:29:55 2000 Gray Watson <> * Releasing dmalloc version 4.6.0. * Fixed an incompatibility with the dmalloc_t -r, sbrk, and the DEBUG_ALLOW_NONLINEAR flag. * Improved the implementation of the NEVER_REUSE flag. Found problems with the dmalloc_t -r random debug flag. * Added BUILD.txt instructions to the repository. Tue May 16 14:34:14 2000 Gray Watson <> * Added BLOCK_ROUND macros to heap.h. * Made initial attempt to protect blocks in chunk.c. Got pretty hairy way too fast so backed it out. * Added SET_POINTER macro and cleaned some code. * Completely reworked the internal initialization values for the environmental variables to fix problems pointed out by Carlton Teel. I was doing a (unsigned int)-1. Yuck. * Fixed a bug found by Mcvey where the 1st dblock allocation in a block would not have been found in non-freed memory lists. Yuck. Mon May 15 11:46:21 2000 Gray Watson <> * Moved to 'make cxx' and 'make installcxx' for building and installing the C++ version of the library. * Added autoconfiguration of the presence of a C++ compiler so it will attempt to build and install libdmallocxx.a if it can. * Removed DMALLOC_VERIFY_[NO]ERROR and replaced with DMALLOC_[NO]ERROR. * dmalloc_examine now returns DMALLOC_[NO]ERROR not [NO]ERROR. * Added initial mprotect configuration and stub function to the library. Mon May 8 08:19:45 2000 Gray Watson <> * Renamed dmalloc.cc to dmallocc.cc and added the building of libdmalloc++.a per Dimitri's comments. * Renamed rpm.spec to dmalloc.rpm per Dimitri's comments. Mon May 1 20:34:18 2000 Gray Watson <> * Fixed some more function headers. Tue Apr 18 15:41:30 2000 Gray Watson <> * Releasing dmalloc version 4.5.2. * Added DGUX notes from Takis Psarogiannakopoulos. * Fixed bug in chunk.c pointer checking. Thanks Ezra. Mon Apr 17 21:55:39 2000 Gray Watson <> * Cleaned up some of the compat.[ch] headers to better match reality. Thu Mar 30 10:05:01 2000 Gray Watson <> * Reorganized the dmalloc.texi documentation and moved to using makeinfo program. * Releasing dmalloc version 4.5.1. * Fixed a problem with compilation of dmalloc_lp.c. Thanks Chip. Wed Mar 29 17:40:43 2000 Gray Watson <> * Releasing dmalloc version 4.5.0. Fri Mar 24 16:21:39 2000 Gray Watson <> * Releasing dmalloc version 4.5.0 beta 1. * Added new dmalloc_mark() and dmalloc_log_changed() functions. * Added new BBLOCK_FREE_START and redid some of the block flag checking. Tue Mar 21 13:15:46 2000 Gray Watson <> * Releasing dmalloc version 4.4.0 beta 2. * Removed the stupid old Deansify.pl script. * Added rpm.spec file to the distribution. * Fixed problem with chunk checking of dblock structures. Mon Mar 20 18:19:06 2000 Gray Watson <> * Releasing dmalloc version 4.4.0 beta 1. * Removed usage of PTHREAD_MUTEX_INITIALIZER which was delaying the mutex-init call. * Added code to fix some recursive problems with open and atexit. * Basically encorporated Randell's changes [finally]. Thanks for your patience dude. * Removed the stupid chunk.c unions. Why did I ever do that? It made debugging and absolute bear. * www.dmalloc.com -> dmalloc.com. Mon Mar 6 12:05:01 2000 Gray Watson <> * Added better help messages to dmalloc. Thu Feb 17 09:04:19 2000 Gray Watson <> * Fixed Makefile.dep creation with _th.o special objects. * Fixed the outputting of gratuitous colons. * Added @uref texinfo tags and new texinfo.tex. Mon Nov 8 15:39:44 1999 Gray Watson <> * Releasing dmalloc version 4.3.0. * Fixed some problems with char * instead of void *. Mon Oct 18 12:09:30 1999 Gray Watson <> * Added info about log-unknown to the Getting Started section and more info about ident. Fri Oct 15 18:13:39 1999 Gray Watson <> * Added power pc return.h macros from Shawn. Thu Oct 14 10:08:58 1999 Gray Watson <> * Releasing dmalloc version 4.3.0 beta 3. * Darn. Missed malloc.h in the port file. Wed Oct 13 18:38:26 1999 Gray Watson <> * Releasing dmalloc version 4.3.0 beta 2. * Changed #ifdef USE_DMALLOC_LEAP -> #if USE_DMALLOC_LEAP. Doh. Mon Oct 11 12:37:13 1999 Gray Watson <> * Releasing dmalloc version 4.3.0 beta 1. * Fixed problems on Linux with the strdup macro. Wed Aug 25 08:33:39 1999 Gray Watson <> * Added copyright and url info for ident and what. * Added support for PTHREAD_MUTEX_INITIALIZER. Tue Jul 20 12:47:14 1999 Gray Watson <> * Added USE_DMALLOC_LEAP define in the settings.dist file with which you can enable the leap functionality which previously was the default. Thu Apr 15 10:21:55 1999 Gray Watson <> * Dmalloc now looks in the current directory for .dmallocrc before checking your $HOME directory. * Rewrote a significant piece of the dmalloc utility. Much better code with regards to processing configuration files. Fri Mar 26 17:57:54 1999 Gray Watson <> * Increased the filename size from 40 to 100 characters. Thu Mar 11 17:31:00 1999 Gray Watson <> * Releasing dmalloc version 4.2.0. * Completely reworked the qsort code. Wed Mar 10 11:18:13 1999 Gray Watson <> * Improved the autoconfig of abort and qsort safety. * Fixed hash problem on 64-bit alphas. * Fixed a number of missing prototypes and include problems. * Added QSORT_OKAY switch to configure for linux. * Fixed STDC ifdefs for C++. Thanks Eric. Tue Mar 9 14:26:11 1999 Gray Watson <> * Fixed some problems with threading and the LOG_THREAD_ID ifdef. * Improved the memory table output. Renamed the table files to be dmalloc_tab.[ch] to removed clash with libtable.a. Mon Mar 8 10:50:12 1999 Gray Watson <> * Releasing dmalloc version 4.2.0-beta. * Fixed long standing problem with the NEVER-REUSE token. * Added memory tracking function so the user can register a callback function to be run whenever a memory transaction occurs. Sun Mar 7 17:58:07 1999 Gray Watson <> * Added DUMP_UNFREED_SUMMARY_ONLY variable to the settings.dist file. * Added MEMORY_TABLE_SIZE and MEMORY_TABLE_LOG variables to the settings.dist file. * Fixed problem with valloc exposed by moving to random() from rand(). Grrr. * Added memory table code for grouping of allocated and non-freed memory. Looks great! Thu Mar 4 19:28:45 1999 Gray Watson <> * Removed a number of static variables for string buffers. Yuck. * Removed PERMISSION file and all references to commercial-ness. * Moved to internal sprintf code for snprintf, etc.. * Added dmalloc_message to the exported list of functions. Had to add stdarg.h handling to dmalloc.h. Fri Dec 11 00:04:04 1998 Gray Watson <> * Releasing dmalloc version 4.1.2. * Fixed really bad bug which basically killed pthread support. Mon Nov 16 11:51:39 1998 Gray Watson <> * Releasing dmalloc version 4.1.1. * Fixed signal autoconfiguration. Bad dog. * Releasing dmalloc version 4.1.0. Thu Nov 12 10:08:58 1998 Gray Watson <> * Added HTML versions of the manuals to the releases. * Added FREED_POINTER_DELAY in settings.h which will hold a pointer from being reused for a certain amount of time. * Renamed allow-zero token to be allow-free-null. * Added LOG_TIME_NUMBER and LOG_CTIME_STRING to the settings.dist file for logging times in the logfile. * Disabled the log-thread-id macro. Use the LOG_THREAD_ID define in settings.h to control. * Disabled the log-stamp macro. Use the STORE_TIME define in settings.h to control. Tue Nov 10 12:43:00 1998 Gray Watson <> * Added Jens' cool gdb script and -g (--gdb) flag to dmalloc utility. * Added missing delete[] function to the C++ code. Thanks Jens. Mon Nov 9 11:48:29 1998 Gray Watson <> * Releasing dmalloc version 4.1.0 beta. * Moved some settings from chunk_loc.h into settings.dist. * Improved the handling of free(NULL) and malloc(0) settings. * Added initial memalign support with a error message if the alignment is less than block size which is not currently supported. * Renamed print-error token to print-messages. Wed Oct 28 10:17:13 1998 Gray Watson <> * Increased the default max memory size from 16mb to 64mb. Thu Oct 15 11:06:41 1998 Gray Watson <> * Released dmalloc version 4.0.3. * Moved to #ident for rcs-ids in GCC. * Found and fixed a bug when reallocing a previous valloced section. Not a good idea anyway since it will not preserve the block-aligned status (should it). * Released dmalloc version 4.0.2. * Fixed a problem in return.h and DMALLOC_UNKNOWN_FILE. Ugh. Thanks much to Mike Sacauskis for pointing this out. Thu Oct 8 11:07:25 1998 Gray Watson <> * Released dmalloc version 4.0.1. * Added startup messages acknowledging the thread status. Added error.o to the thread object list. Wed Oct 7 14:52:14 1998 Gray Watson <> * Fixed problem with thread compilation and chunk.c. Thanks much to Didier Verna for pointing out this problem. * Fixed possible race condition with synchronizing with external sbrk calls. Mon Oct 5 22:56:46 1998 Gray Watson <> * Migrated in new argv code. Sun Oct 4 22:56:46 1998 Gray Watson <> * Released dmalloc version 4.0.0. * Updated the manual a bit. * Made a small change to the solaris return.h code. Thanks Alexandre. Tue Sep 29 09:26:50 1998 Gray Watson <> * Releasing dmalloc version 4.0.0 beta2. * Aligned valloc to block alignment as it should have been with fence post checking installed. * Renamed some internal variables and macros better names. Mon Sep 28 17:55:24 1998 Gray Watson <> * Added better auto-configuration of valloc. * Improved the log-trans output messages. * Added the printf attribute to error.c's dmalloc_message. Fixed a number of casting problems. Fri Sep 18 13:37:23 1998 Gray Watson <> * Releasing dmalloc version 4.0.0 beta. * Added recalloc support into the library. Thanks to Nick Albright for suggesting it. * Cleaned up the calloc special handling and accounting. Simplified the local malloc functions in malloc.c. * Added valloc support to the library after it was determined that OSF thread libraries still use the function. memalign will be much harder to add. Thu Sep 17 08:42:14 1998 Gray Watson <> * Improved the pthread autoconfiguration and the code. Removed the gross macro code sections. * Lots of small code improvements. * Got rid of the _dmalloc_file and _dmalloc_line stuff which was _very_ unportable. Thanks Marty for pointed this out. Reduced the race conditions there and improved the handling of default values. * Added FTX return.h information. Thanks to Wim van Duuren. Wed Sep 16 16:28:49 1998 Gray Watson <> * Added direct strdup support to the library with the assocated leap functions. Tue Feb 10 21:12:40 1998 Gray Watson <> * Releasing version 3.3.1 to get rid of the -beta. Sun Dec 21 19:32:02 1997 Gray Watson <> * Shifted some flags to ints instead of longs. * Improved error string handling. Wed Dec 17 08:15:04 1997 Gray Watson <> * Removed allocation macros from the docs and the header. I was not using them anymore and I would think they would be confusing. * Added realloc(pnt, 0) works like free(pnt). Thanks Stefan! Mon Dec 8 04:34:14 1997 Gray Watson <> * Reworked the log_error_info routine's dumping of the fence post areas to properly dumps upper fence post bytes. Mon Dec 8 02:34:14 1997 Gray Watson <> * Releasing dmalloc version 3.3.0. * Fixed problems with pthread locking and various conditions. Added a warning if lock-on is set without allow-nonlinear. Sun Dec 7 21:44:17 1997 Gray Watson <> * Added THREAD_LOCK_INIT_VAL autoconfigure. Fri Dec 5 12:09:26 1997 Gray Watson <> * Performed some long overdue major code cleaning. Added new Lycos {}, int _b for bools, and other stuff. Wed Nov 5 11:25:09 1997 Gray Watson <> * Renamed argv.[ch] to be dmalloc_argv.[ch] to not clash with argv files. Sun Jul 20 00:40:53 1997 Gray Watson <> * Added return address handling for SGI. Thanks James. Mon Jul 7 03:12:28 1997 Gray Watson <> * Added better C++ overload functions. From whom off the Net did I get this from? * Added test for DMALLOC_SIZE unsigned-ness. * Added a FINI_DMALLOC setting to the settings.dist file to support the OSF __fini_ stuff. * Added pthread lock_on -o environmental settings. You will need to have LOCK_THREADS set to 1 in the settings.h file. Sat Mar 22 12:28:45 1997 Gray Watson <> * Added return-address tracking for gcc on alphas. Thanks Alexandre. Fri Mar 21 09:29:46 1997 Gray Watson <> * Released version 3.2.1. * Added to dmalloc the ability to recognize its internal tags. * Added better documentation of auto-dmalloc_shutdown. * Cleaned up some configuration stuff. * Fixed a number of signed/unsigned problems in chunk. Thu Mar 20 15:45:59 1997 Gray Watson <> * Removed autoconf rule in Makefile.all. * Cleaned up pthreads locking delay code. Fri Jan 17 14:25:12 1997 Gray Watson <> * Releasing version 3.2.0. * Added catch-signals debug token (about time, huh Marty?) * Revamped autoconf scripts to be more standard. * New signal handling. Thu Jan 16 15:22:06 1997 Gray Watson <> * Moved to memcpy and memcmp from the b routines. * Fixed the locking for pthread programs. Dumb errors. * Ran new fillproto on h-files. IMPORT -> extern. Thu Dec 28 20:39:00 1995 Gray Watson <> * Releasing version 3.1.3. * Added new argv versions to fix problems. * Don't allow silent dumps of test program. Tue Dec 19 19:11:19 1995 Gray Watson <> * Added registration subdirectory. Mon Nov 20 22:14:14 1995 Gray Watson <> * Removed some unresolved references in argv.c: strcasecmp, strdup. * Fixed some porting problems to Unixware. Unsigned chars. Mon Oct 21 00:23:51 1995 Gray Watson <> * Fixed bug where I called display_pnt instead of display_where. Tue Oct 10 18:43:09 1995 Gray Watson <> * Releasing version 3.1.2. Mon Sep 18 10:14:36 1995 Gray Watson <> * Finally tested fore myself the configure --srcdir option. Found lots of places with missing $(srcdir) entries. Wed Sep 6 13:33:59 1995 Gray Watson <> * Released version 3.1.2-gamma. * Added sbrk handling in the dmalloc_t test program. * Renumbered error values so inserting won't be a problem in the future. Added ERROR_EXTERNAL_HUGE. * Added new argv files. * Fixed up statistics to include external block handling. * Fixed up the external sbrk handling. I broke it with the 3.1.1 version. This re-write is much cleaner. Made some changes to dblock admin handling and heap-check * Re-added THREAD_LOCK definitions to settings.dist. Where did they go? Tue Sep 5 12:38:48 1995 Gray Watson <> * Moved install.sh to install-sh and fixed some Makefile problems. Thanks Francois. * Simplified the heap code a lot. Fixed race conditions. Sun Sep 3 12:50:30 1995 Gray Watson <> * Releasing 3.1.2-beta. * Added configure handling of 32768 page sizes. * Removed stdlib inclusion in dmalloc.h.2 for size_t. * Added some undefs for malloc, etc. for Linux. Thanks Rick. Sat Sep 2 15:34:01 1995 Gray Watson <> * Releasing 3.1.2-alpha. * Added inital thread locking for debugging threaded programs. * New attempts to auto-configure DMALLOC_SIZE for size_t. I've tried this before. We'll have to see what it screws up. * Added settings.dist which is copied by configure. Thanks Marty. Fri Sep 1 15:53:50 1995 Gray Watson <> * Started better autoconfiguring of DMALLOC_SIZE variable. Wed Aug 30 14:05:39 1995 Gray Watson <> * Added dmalloc_aborting flag in case kill or abort recurses. Thanks Stephen. Tue Aug 29 17:43:54 1995 Gray Watson <> * Added new[] C++ function. Thanks Arno. Tue Aug 28 00:00:00 1995 Gray Watson <> * Changed DMALLOC_SIZE to 'unsigned long' instead of unsigned. Fri Aug 18 11:50:03 1995 Gray Watson <> * Releasing version 3.1.1. * Moved all non-linear heap checking to heap code and improved the code immensely (read it works now). * Fixed dumb bug in argv code. * Added handling of NONLINEAR heap by default. Mon Aug 14 10:57:26 1995 Gray Watson <> * Fixed up dmalloc_t to propogate errors better. Thanks Thorsten. Sun Aug 13 16:02:27 1995 Gray Watson <> * Renamed chunk_heap_check to chunk_check. Fri Jul 14 16:58:09 1995 Gray Watson <> * Releasing version 3.1.0. First commercial release. * Added academic references to permissions sections. Wed Jul 5 19:11:03 1995 Gray Watson <> * Released version 3.1.0-beta. Mon Jul 3 19:57:05 1995 Gray Watson <> * Encorporated new configed argv files from version 2.0.1. Wed Jun 28 19:48:47 1995 Gray Watson <> * Improved header file configurations immensely. Removed all casts and other dumb coding assumptions for 64 bit machines. * Fixed dumb sparc preprocesser error. Tue Jun 20 13:56:02 1995 Gray Watson <> * Added commercial license restrictions to library. Mon Jun 19 22:06:12 1995 Gray Watson <> * Changed USE_ABORT to rely on ABORT_OKAY auto-configed setting. * Fixed problem with fence handling and 64 bit longs. * Added lots of comments about internal chunk structures. Tue Jun 13 17:34:02 1995 Gray Watson <> * pulled manual settings out of conf.h to settings.h. Tue May 31 10:30:59 1995 Gray Watson () * Finished version 3.0.7. Released later. Tue May 30 10:30:59 1995 Gray Watson () * Fixed problem with conf.h references before included. * Fixed problems with exit() calls in configure. Thanks Rik. Mon May 15 20:13:10 1995 Gray Watson () * Added error-dump token for dumping-core and continuing on errors. * Added Web pointers to online documentation. * Added abort() auto-configuration for KILL_PROCESS. * Minor fixes. Added an arg to dmalloc_die to be silent. Fri May 12 16:33:44 1995 Gray Watson () * Released version 3.0.6-beta. * Fixed problem with NEVER_REUSE and realloc same block-size. * Fixed up logging of time. Lots of ifdefs. * Added a pointer overhead structure. Fri May 5 11:39:39 1995 Gray Watson () * Renamed a number of chunk fields to remove the use of count. * Logged starting/ending time in logfile. * Added thread-id tracking with conf.h option. * Added pointer-count tracking with conf.h option. * Added interation-count tracking with conf.h option. * Added global/relative time tracking with conf.h option. Fri Mar 31 16:51:52 1995 Gray Watson () * Better tag output from dmalloc -t. * New version of argv files. * Fixed problem with dmalloc -c and start-count. * Added some messages about upcoming errors in dmalloc_t. Thu Mar 23 10:34:33 1995 Gray Watson () * Improved the manual a bit. Phased in some alpha changes. * Added some Next notes to the contrib directory. Need more. Fri Mar 10 13:29:49 1995 Gray Watson () * Added allow-zero token for not minding malloc(0) and free(0L). * Made all chunk.c global counters longs. Fri Mar 3 12:37:17 1995 Gray Watson () * Integrated into new CVS hierarchy. New copyrights. Mon Jan 2 18:51:19 1995 Gray Watson () * Released version 3.0.5. * Changed my mail address and ftp location. Fri Dec 16 15:07:29 1994 Gray Watson () * Fixed some old references to malloc in docs. Thanks Dave. Thu Dec 15 10:25:59 1994 Gray Watson () * Released version 3.0.4. Sat Nov 12 18:05:34 1994 Gray Watson () * Removed message arg to env-get routine due to various probs. * New STDC definitions of DMALLOC_PNT and DMALLOC_FREE_RET. * Removed all STRDUP and BDUP macros. Was anyone using them? Wed Nov 9 15:43:45 1994 Gray Watson () * Upgraded to autoconf 2.1. New configure script. Tue Nov 8 18:54:04 1994 Gray Watson () * Added dying message when malloc_die is called. Thanks Marty. * Reworked the manual a ton. Looks much better. Added Quick-Start + Installation sections. * Lots of changes to notes files. Thu Nov 3 17:25:29 1994 Gray Watson () * Released version 3.0.3. * Added dmalloc.cc C++ file to distribution. * Default is now to build/install a libdmalloclp.a library. Wed Oct 26 21:13:11 1994 Gray Watson () * Removed the log-error tag. Pretty worthless. If you had logpath set then it should log errors. Tue Oct 18 19:54:21 1994 Gray Watson () * Fixed problem with new args clearing all old ones. Sat Oct 15 13:55:16 1994 Gray Watson () * Added dmalloc.h.2 creation to config.status file. Thanks Dave. * Added a startup message with the debug flags used to logfile. Fri Oct 14 18:40:59 1994 Gray Watson () * Fixed dumb errors with FUNC_CHECK code. Thanks Dave. Thu Oct 13 21:25:52 1994 Gray Watson () * Added default tags: default,low,medium,high,all to dmalloc. * Renamed check-free to check-blank but left free for compat. * Made a number of changes from Dave MacKenzie. Reworking the manual fixed the Makefile, RC file, argv, etc... Wed Oct 12 13:00:48 1994 Gray Watson () * Added long/short options to dmalloc and env routines. * Changed some dmalloc options. -T -> -D, -L -> -t. Yeach! * Added better error logging in chunk. Tue Oct 4 13:39:40 1994 Gray Watson () * Added DG/UX code to return.h and atexit code and notes to the distribution. Thanks Joerg. Mon Sep 26 11:59:56 1994 Gray Watson () * Releasing version 3.0.2. * Fixed stupid strtok error in dmallocrc file processing. Mon Sep 26 11:20:17 1994 Gray Watson () * Fixed problems with env code and that sprintf returning (char *) on some archs. DUMB! Wed Sep 21 11:45:19 1994 Gray Watson () * Library now dumps the proper fence-bottom bytes on first pointer error. * Fixed 2 casting problems on OSF. Thanks Dave. Tue Sep 20 13:58:08 1994 Gray Watson () * Releasing version 3.0.1. * Combined all env variables into DMALLOC_OPTIONS. Lots of changes to dmalloc program. Fri Sep 16 14:50:26 1994 Gray Watson () * Added short token strings and values to -T very-verbose output. * Added -n flag to dmalloc program for printing/not-doing actions. Tue Sep 13 11:36:10 1994 Gray Watson () * Added mkinstalldirs to distribution. Thanks Francois. Mon Sep 12 13:12:38 1994 Gray Watson () * Fixed zsh and [t]csh alias messages in documentation. * Added install.sh to distribution. Thanks Francois. Mon Sep 12 10:07:29 1994 Gray Watson () * Renamed _dmalloc_error to dmalloc_error since it is used externally so often. Sorry folks. * Removed time() and getpid() from compat functions. Moved HAVE_... tests into the code that used them. Duhhhh. * Changed DMALLOC_DEBUG_DISABLE flag to DMALLOC_DISABLE. * Fixed some include file auto-include messages. Thanks Francois. Thu Sep 8 10:07:56 1994 Gray Watson () * Releasing version 3.0.0. * Fixed a problem with some list checking via user feedback. Fri Sep 2 17:34:02 1994 Gray Watson () * Fixed possible recursion problem. Thanks Marty. Mon Aug 29 11:08:36 1994 Gray Watson () * Tons of name changes going from malloc_dbg -> dmalloc. Lots of files, internal/external routines, variables, etc. Sat Aug 27 19:33:16 1994 Gray Watson () * Releasing 2.2.1 so I make the name shifts. * Fixed problem with IMPORT in malloc_dbg.3 via user feedback. Mon Aug 8 22:43:44 1994 Gray Watson () * Releasing version 2.2.0. Mon Aug 8 22:29:11 1994 Gray Watson () * Added no-special test option to malloc_t. * Fixed problem with merging adjacent free blocks if last/first block being freed. Wed Aug 3 14:28:20 1994 Gray Watson () * Fixed xmalloc,xrealloc,etc. override functions. * Added xstrdup to the x leap function list. Mon Aug 1 23:03:50 1994 Gray Watson () * Added $verbose checks in configure. Thanks Francois. * Added 'err' label to error printing. Thanks Francois. Fri Jul 22 11:48:26 1994 Gray Watson () * Added ability to combine adjacent free blocks into one. Thu Jul 21 14:44:25 1994 Gray Watson () * 0 or negative MALLOC_INTERVAL values act as if no interval value. * Made a 'malloc_dbg -i 0' undefine MALLOC_INTERVAL. * Fixed calloc return-address problem. Thanks Gregory. * Added KILL_PROCESS macro to configuration scripts. Replaces ERROR_SIGNAL. Thu Jul 10 00:00:00 1994 Gray Watson () * Marty Leisner compiles library on MS-DOG! Sun May 22 18:37:31 1994 Gray Watson () * Fixed some problems with malloc_errno set after call to error. Wed May 11 12:02:31 1994 Gray Watson () * Released version 2.1.0. * Fixed problem with never-reuse going on/off and check-lists. * Added -r (random-debug) option to malloc_t which causes it to constantly change the dmalloc flags while testing. * Fixed VERY nasty bug in realloc with alloc-blank and no realloc-copy token. * Fixed problem with ANSI-C configure on AIX systems. Fri Apr 8 13:51:39 1994 Gray Watson () * Fixed some race conditions with sbrk failure. Thu Apr 7 17:13:31 1994 Gray Watson () * Added some better checking for out-of-range arguments. * Changed heap-error to 0L from -1. * Added -p max-pointers argument to malloc_t. Wed Apr 6 23:02:07 1994 Gray Watson () * Added 'log-nonfree-space' token for logging unfreed memory space. Wed Mar 30 01:03:56 1994 Gray Watson () * Added iteration count label to all logfile output. Fri Mar 25 01:18:55 1994 Gray Watson () * Fixed small recursive problem messing up malloc #2 info. Mon Mar 21 09:58:21 1994 Gray Watson () * Added xmalloc,xrealloc,etc. override functions. Sun Mar 20 14:48:25 1994 Gray Watson () * Added better mechanisms for const definition. Sun Mar 20 11:57:34 1994 Gray Watson () * Renamed token 'log-perror' and 'print-perror' to '...-error'. Wed Mar 2 22:49:18 1994 Gray Watson () * Fixed some spelling and other misc problems. Sun Feb 27 17:53:35 1994 Gray Watson () * New argv files. Fixed Makefile.all.in problem. * Released version 2.0.1. Sun Feb 20 00:39:37 1994 Gray Watson () * Cleaned up a number of configure/compat functions. Fri Feb 18 02:32:53 1994 Gray Watson () * Fixed tons of __STDC__ defines. Finally I hope. * Added more commands to malloc_t to log information, etc. * Released version 2.0.0. * Last minute fixes from Sparc and MIPS boxes. Thu Feb 17 17:47:05 1994 Gray Watson () * Lots of changes to add argv files in place of argv subdir. * added initial support for external block locating. this is going to be a toughy to solve. there is a catch-22 here. Sat Jan 22 01:34:55 1994 Gray Watson () * moved BLOCK_SIZE into malloc_log because its used everywhere. Fri Jan 21 23:45:26 1994 Gray Watson () * added missing checks for ADMIN_FREE in heap_check Wed Jan 19 20:43:05 1994 Gray Watson () * Added a new texinfo.tex macro file. * Renamed CHECK_FREE to CHECK_BLANK internally. * Added 'allow-nonlinear' token to remove special checks. Mon Dec 20 14:14:08 1993 Gray Watson () * Added a -m max-amount flag to malloc_t. * Renamed dbg_tokens.h -> debug_tok.h and dbg_values.h -> debug_val.h Mon Dec 20 02:24:02 1993 Gray Watson () * Added -V option to malloc_dbg and desc field for debug-token list. Sun Dec 19 23:35:53 1993 Gray Watson () * moved the NULLs in malloc_dbg.h to 0L. * added a debugging section to the manual and moved some stuff around. Fri Dec 17 15:02:29 1993 Gray Watson () * fixed some compilation errors with non-STDC systems re Charles Campbell. Mon Dec 6 01:18:29 1993 Gray Watson () * new fence read/write code. much cleaner. new FENCE_TOP define. Tue Nov 30 05:35:39 1993 Gray Watson () * added special tests to malloc_t. cleaned up and tested alloc(0). Mon Nov 29 21:39:54 1993 Gray Watson () * turned num_bits into a macro and condensed log_heap_map. added MAX_SLOTS to chunk. Tue Nov 23 02:39:44 1993 Gray Watson () * fixed heap_check error with free blocks. * Added light and heavy makefile targets for automatic testing. * added -s flag to malloc_t and cleaned up the output. * added realloc test code to malloc_t and immediately had to fix a pretty nasty realloc bug with the new code. * phased in the version 1.3.5 branch changes into the 2.0.0 version. looks like it was reasonably painless. Mon Nov 22 22:21:56 1993 Gray Watson () * Integrated tons of new heap code with per/block allocations (not base 2) and better free list management with block splitting. * Releasing version 1.3.5. * Added more automatic and comprehensive malloc_t testing facilities with argv options. * removed library from linking with malloc_dbg. good idea dave. * integrated some fixes and remove pre-main shit. Mon Nov 15 00:39:51 1993 Gray Watson () * Added -T option to malloc_dbg: list-tokens for listing of debug tokens. * added ERROR_SIGNAL configure entry. defaults to SIGABRT. (NOTE: later removed). Sun Nov 14 23:08:03 1993 Gray Watson () * Added 'never-reuse' token to never reuse free'd memory. Mon Nov 8 05:44:58 1993 Gray Watson () * added ra_info to the contrib directory. Big wow. Wed Nov 3 00:56:19 1993 Gray Watson () * Added check for pre-main calls to malloc. HACK! * Added on_exit and atexit support to auto-call malloc_shutdown. Thanks much to Manfred, Dave, Scott, and Rich. * Added -m (minus) option to malloc_dbg. Why didn't I think of this before? Tue Nov 2 16:45:32 1993 Gray Watson () * Fixed problem with getenv processing. Wed Oct 20 19:30:34 1993 Gray Watson () * Renamed malloc_debug to malloc_flags. * Added all malloc utility functions to malloc_lp.c. Now programs can call malloc_shutdown (for instance) without fear. See malloc_lp.h. Sat Oct 16 19:18:53 1993 Gray Watson () * removed debug token log-ra, log-unknown should be enough. Thu Oct 14 19:48:42 1993 Gray Watson () * malloc_heap_map() -> malloc_log_heap_map() for consistency. Wed Oct 13 17:58:55 1993 Gray Watson () * Added malloc_log_unfreed() to dump non-free memory to logfile. Good for comparing heaps to see differences. * Added -p flag to malloc_dbg to allow adding of tokens to debug value. * added DEBUG_LOG_STAMP to add timestamps to log entries. * Added malloc_log_stats() to dump stats to log file. * Re-added cfree() call. No reason not to have it. Sun Sep 26 14:36:54 1993 Gray Watson () * For new version 2.0.0b. Major changes. Lots of procedures moved around. Rewrote a large part of get_bblocks and removed get_bblock_adm. * Releasing version 1.3.4. * Added -std1 configuration changes and bcopy fixes. * Fixed up the messages to provide more information and to just reflect reality. Some real dumb errors found. * Added malloc_debug_current() and #ifdef STDC instead of #if. Thanks Scott. Wed Sep 22 00:43:54 1993 Gray Watson () * Removed log-bad-pnt. What a dumb token! Unnecessary! Mon Sep 20 20:36:23 1993 Gray Watson () * Releasing version 1.3.3. * Added ALLOW_FREE_NULL defines because of some systems allowing free(0). Yeach! Thanks Dave. Fri Sep 10 17:10:45 1993 Gray Watson () * Fixed debug value changes in mid-stream. Repaired configuration error with memcpy/bcopy and memcmp/bcmp. Thanks Marc. Tue Sep 7 00:49:50 1993 Gray Watson () * Renamed all error codes to ERROR_*. Added ERROR_IS_FREE and changed some of the already-free errors to this. Reworded some error messages and added free's file/line into to log_bad_pnt. Mon Aug 30 17:23:47 1993 Gray Watson () * Added prototypes for _malloc_strcpy, etc. functions to malloc_dbg.h per Scott's comments. Thu Aug 26 19:06:45 1993 Gray Watson () * Released version 1.3.2. Uploaded to the ftp site. * Removed MALLOC_TRACE and malloc_dbg -t. Replaced by MALLOC_ADDRESS:0 functionality and logging of a message every time malloc_address is seen. * Fixed some dumb const problems. Have to now preprocess malloc_dbg.h from start const.h end. Yeach! * Added MALLOC_LOGFILE feature where %d in the string will be replaced with the pid of the process. Had to add getpid to configure and compat. * Fixed some problems with compat.h defines. Tue Aug 24 00:35:49 1993 Gray Watson () * Releasing version 1.3.1. * Added log-ra token to log specific information about non-freed memory with only return-address information (NOTE: later removed). * Added the beginnings of return-address handling. Thanks Dave. Need to resolve some XXX sections in chunk and get more architecture/compiler hacks in return.h. Along the way had to change the malloc_examine() arguments to add ret_attr. * Added -L or --list to malloc_dbg to list all the rc-file tags. * Fixed some problems in chunk.c. Thanks Dave. Renamed malloc_str.[ch] to be arg_check.[ch]. Tue Aug 17 16:22:20 1993 Gray Watson () * Releasing version 1.3.0. * Fixed some ansi compiler problems via patch from Manfred Hauswirth. Thu Aug 12 18:11:01 1993 Gray Watson () * Added MALLOC_TRACE variable and malloc_dbg -t functionality for tracing an address and logging messages about it. NOTE: this was later removed -- replaced by MALLOC_ADDRESS:0. Tue Aug 10 16:43:07 1993 Gray Watson () * Made some minor fixes. Thanks Marc. Mon Jul 26 05:50:27 1993 Gray Watson () * Added some C++ from Peter Miller to the manual. Fri Jul 23 01:36:09 1993 Gray Watson () * Removed LGPL copyright and put in its place fully free software notices. Thu Jul 22 17:35:23 1993 Gray Watson () * _malloc_perror renamed to _malloc_error and made some other minor changes. Tue Jul 20 01:52:02 1993 Gray Watson () * Added smallest_block runtime calculations. Mon Jul 19 12:20:58 1993 Gray Watson () * Made malloc_address exported per Dave's comments so it can be setable by debugger at runtime. * Added Dave's idea of auto-sensing of shell by malloc_dbg. Also added -C option to malloc_dbg to force cshell output. * Removed the dblock checking tokens CHECK_DBLOCK and CHECK_DB_FENCE for a couple different reasons. I never liked them anyway! I also renumbered CHECK_FREE and CHECK_FUNCS in the process. * Fixed a number of int/long problems since Dave is running malloc on a 64 bit alpha. * Made a number of changes to the configure scripts and conf.h per Dave's comments. Added BASIC_BLOCK and ALLOCATION_ALIGNMENT to the auto-config stuff. Fri Jul 16 00:01:31 1993 Gray Watson () * Changed malloc_dbg per new ARGV_MAYBE. Made some various changes from ints to longs per some useful comments from Dave Hill. Tue Jul 13 01:53:32 1993 Gray Watson () * Version 1.2.6 released. * Posting to bsdi. Last minute porting changes. Mon Jul 12 02:03:25 1993 Gray Watson () * Finished new catch-null token. Tue Jul 6 16:04:17 1993 Gray Watson () * Added 'catch-null' token for quitting as soon as we get a sbrk failure (i.e. the swap is full or something) as opposed to returning NULL. Sat Jun 19 14:49:42 1993 Gray Watson () * Minor changes to configuration and notes files. Tue Jun 15 10:29:13 1993 Gray Watson () * Released version 1.2.5. * Made some last minute changes to the manual. Wed Jun 9 15:12:21 1993 Gray Watson () * Fixed small malloc_dbg token bug from Peter Miller. Thu Jun 3 16:01:14 1993 Gray Watson () * Added index to manual, removed shar files in place of Makefile variables. Mon May 24 12:58:06 1993 Gray Watson () * Added -r and -k options for auto-unsetting of variables or keeping of variables with malloc_dbg when setting a tag. * Added const checking to configure and reordered some include files to put conf.h on top. Tue May 18 20:07:41 1993 Gray Watson () * Added log-bad-space token and added expand_buf into chunk.c. * Create log_bad_pnt in chunk. Probably broke stuff. Translated some flag to BIT_FLAG format. * Updated README and started ftp site thanks to Doug Balog. Thu May 13 00:56:39 1993 Gray Watson () * Released version 1.2.4. * Pretty stable now for a while. Trying to get access to a ftp for distribution ease. Thu May 6 11:26:03 1993 Gray Watson () * Added new fix-patch script for myself. Fixed malloc_t by removing LOCAL/EXPORT, etc. Fri Apr 30 15:26:12 1993 Gray Watson () * Removed some heap checks in malloc.c from Bali Jatinder's comments and fixed some of the error strings. * Moved around some defines and changes include ordering. * Added -v option to malloc_dbg to provide verbose output especially for dumping currently set debug tokens from MALLOC_DEBUG variable. Mon Apr 19 16:04:17 1993 Gray Watson () * Released version 1.2.3. * Made some changes to a lot of comments, notes files, and ttd file. Thu Apr 15 17:44:41 1993 Gray Watson () * Renamed malloc.h to malloc_dbg.h and libmalloc.a to libmalloc_dbg.a. Added heap-extension checking and verification to make sure no-one extends the heap using sbrk behind out back. Fixed calloc to have the number of elements be a size_t to (WHY?? It's not a size!!). Fixed malloc_t free problems. Wed Apr 14 18:11:00 1993 Gray Watson () * Released version 1.2.2. * Added some more point checking tests to malloc_str. Added MALLOC_SIZE to some more places. Completely ifdef'ed compat.h. If cannot open logfile, now it complains and continues. Removed stdarg from malloc_dbg. Fri Apr 9 01:50:17 1993 Gray Watson () * Released version 1.2.1. * Made various other changes. Backed out some printf changes. Added SIZE_T defines and fixed up STDC defines. Thu Apr 8 17:41:59 1993 Gray Watson () * Changed to void * internally from char * and put STDC defines in malloc.h for ANSI folks. Why did the ANSI idiots drop the return value from free? Dumb! * Made a number of changes per suggestions from the net. Added some size_t defines for AIX junk (that's right Scott junk). Cut down on the continuation strings, fixed some README and mallocrc goofs, etc. Thanks to all. Tue Apr 6 00:46:45 1993 Gray Watson () * Released version 1.2.0 to comp.sources.unix. * Upgraded to version 1.2.0. Ready for 2nd release to comp.sources.unix. Lots of work on the manual. Mon Apr 5 18:28:05 1993 Gray Watson () * Finished adding token "check-funcs" to check the arguments of some common string functions to see whether they are in the heap. if so it tries to verify that the pointers are good. Sun Apr 4 21:24:45 1993 Gray Watson () * Added token "log-unknown" to dump non-free unknown pointers as well as known ones. Also cleaned up the displaying of the pointers. * comp.sources.unix is almost ready to post so lots of last minute cleanups in the manual, etc. * Started integration of function argument checking. Tue Mar 30 19:36:27 1993 Gray Watson () * Changed malloc.h defines so malloc routines are handled as well as the ALLOC macros. * malloc_dbg program now reports on the token NAME and values. * Added initial string files for string support in the future. * A number of minor changes: fixed gcc compilation problems per Scott's help, combined malloc_lp.h into malloc.h, cleaned most .h and .c files. Fri Mar 26 04:00:14 1993 Gray Watson () * Fixed post 1.1.6 problem with chunk.c. Boy do I need some automated testing tools. Discovered the illusive localtime fence-post error. Had a hard time tracking it down. Maybe due to the fact that the checks were not being made on dblock fence posts before? * Released version 1.1.6 * Found some problems with malloc debug codes. Use of DB_FENCE and CHECK_LISTS and some others were improper. A MALLOC_DEBUG value of 0x403000 would crash all malloc programs. :-) * Added some better comments to all files and cleaned up most files too. Fri Mar 12 18:35:02 1993 Gray Watson () * Released version 1.1.5. Sat Feb 13 17:25:43 1993 Gray Watson () * Finished add a number of const operators to improve coding per scott's recommendations. Sat Jan 30 12:33:43 1993 Gray Watson () * Released version 1.1.4 * Took out the check_vars call inside of malloc_strerror since _malloc_perror calls malloc_strerror which would go quickly recursive. Thanks scott. Tue Jan 5 00:00:00 1993 Gray Watson () * Posted version 1.1.3 shar files to comp.sources.unix. Sat Jan 2 00:16:58 1993 Gray Watson () * Made last minute changes to solve some gcc/ansi errors and to the manual to get things ready for the post. Sun Dec 27 20:28:19 1992 Gray Watson () * Fixed problem with some external functions in malloc.c not resetting the in_alloc flag. Also removed some testing of unsigned variables < 0 in chunk.c per gcc 2.3.3 warnings. * Released version 1.1.3. Mon Dec 21 15:31:50 1992 Gray Watson () * Created the series of shar files in preparation to posting to comp.unix.sources. Looking good. Thu Dec 17 18:33:38 1992 Gray Watson () * Renamed a number of files to comply with the Sys5 12 character restrictions (14 - 2 for RCS/CVS/SCCS). Yeach. malloc_debug -> malloc_dbg. Sat Nov 14 15:59:53 1992 Gray Watson () * Added all external functions to configure and conf.h even though the library assumes that some functions will be resolved. Also upgraded the version number to 1.01gamma (oooooh). * Added print-perror debug token for logging messages to STDERR as well as log-files. Removed stdio from the malloc library to make sure it does not go recursive (alloc for stderr) at a bad time. Wed Nov 11 18:19:49 1992 Gray Watson () * Moved the heap_check calls from chunk.c over to malloc so we can be guaranteed that it gets called only once per user call. chunk's routines often cross-call each other meaning that heap-check was being run 5 times in realloc. YEACH!! Tue Nov 10 17:55:53 1992 Gray Watson () * Added two new debug-tokens: log-blocks and heap-check-map. Also made sure that heap_check was being called from everywhere. Updated the manual and corresponding files. * Added library functions that may not be defined. Updated the conf.h.in and configure.in files to improve confiurability. Upgraded the manual which still needs a lot of work (sigh). Mon Nov 9 19:21:25 1992 Gray Watson () * Added configure, configure.in, conf.h.in, and Makefile.in to try and conform with autoconf specs. What a bear. The documentation for autoconf needs a whole bunch more examples, etc. Sigh. Removed all the MEMORY and STRING defines, etc. Thu Nov 5 22:13:18 1992 Gray Watson () * Released version 1.01b. Sending it off to some folks. * Lots and lots of changes. Translated all programs into non-ansi C dependence and then went back again when I found some problems with my macros. :-) Took out all (and I mean all) Antaire dependencies and defines. Thu Oct 22 00:47:18 1992 Gray Watson () * Ran through most of the debug-flag functionality testing and tweaking. Found some bugs on dblock handling and some messed up logic with the way the LOG flags were working. * malloc_debug is looking good. It now outputs C or Bourne shell code and seems to work in both environments. What do sh folks use in the place of c-shell aliasing? I guess use bash. :-) Wed Oct 21 03:27:35 1992 Gray Watson () * Major changes. I sort of went overboard tonight. I integrated the new malloc_debug program which sets all the debug variables for you. I also added a .mallocrc which you can define with tags exactly the functionality you want to happen. No more levels!! * Did some renaming of files, cleaned up some other things, had to rework a number of items to get new debug flags working. Tue Oct 20 18:06:36 1992 Gray Watson () * Removed useful.h requirements and integrated necessary definitions into malloc.h. * Transferred malloc.txt documentation into malloc.texinfo. Boy is it nifty!! And damn easy!!! * Major changes to improve general machine independence. Added malloc_mach.h. Moved alloc.[ch] to malloc.[ch] for sanity reasons. Tue Oct 13 16:14:17 1992 Gray Watson () * Made various cosmetic changes. Fixed realloc inbound pointer checking per MALLOC_ADDRESS. Fixed problem with MALLOC_ADDRESS initialization to NULL causing free to "find" NULL pointers. :-) * Separated the PERROR debug level and the KILL_SELF level. Now (by default) all memory errors are logged at level 1 and above and malloc kills itself at level 2 and above. Mon Sep 28 23:24:36 1992 Gray Watson () * Added MALLOC_ADDRESS support for free. MALLOC_ADDRESS counts now also apply to frees also. Mon Sep 21 20:39:38 1992 Gray Watson () * Fixed some size problems with bounds checking enabled. * Made free be able to report who freed a pointer. I don't know why this wasn't caught before. free wasn't even using its file/line arguments. Thu Sep 3 03:23:39 1992 Gray Watson () * Added ability to realloc a NULL pointer with an ifdef to disable. Useful in realloc loops where the first time you don't have to alloc it. Fri Aug 14 15:54:03 1992 Gray Watson () * Added a bunch of new environmental variables features: MALLOC_ADDRESS now can have a :# argument. MALLOC_START now has two formats, the old number and new file:line. Looks nice! * Made a pass through chunk.c and fixed a number of problems where debug output pnt/size did not match user-supplied information. * Moved most of the debug variables into alloc.c from chunk.c and added a standardized check_debug_vars() checking routine. Tue Jul 21 16:06:13 1992 Gray Watson () * Fixed malloc count statistics. Removed duplicate malloc_count variable from a number of places. Mon Mar 23 10:49:25 1992 Gray Watson () * Released version 0.04 * New env variable features. Thu Mar 12 19:28:34 1992 Gray Watson () * Fixed a large problem with chunk.c not reporting the correct memory address when listing unfreed memory. This was discovered when MALLOC_ADDRESS was not working correctly. * Started ChangeLog. ------------------------------------------------------------------------------- $Id: ChangeLog,v 1.345 2007/05/14 17:23:42 gray Exp $ -------------------------------------------------------------------------------