------------------------------------------------------------------------------- $Id: NEWS,v 1.109 2003/07/08 18:09:50 gray Exp $ ------------------------------------------------------------------------------- Version 5.2.1: * Fixed problems with macro arguments not in (). Thanks Paul. * Fixed problem with strdup not returning char *. Thanks Dan, Juhani. Version 5.2.0: * Renamed the "max memory space wasted" to "max unused memory space". * Added PDF documentation files to the installation. * Fixed a problem with the global Makefile and dmalloc_t. Thanks Bert. * Added new logfile expansion of %u as getuid() output. * Added new logfile expansion of %h as gethostname() output. * Added new logfile expansion of %t as time() output. * Added new logfile expansion of %p as getpid() output. * Added new logfile expansion of %i as thread-id output. * Removed the old logfile % processing. %d no longer expands to pid. * Added LOG_PID to settings.dist to log pid on each line of logfile. * Added LOG_REOPEN to reopen log if pid changes (fork). Thanks James. * Renamed LOG_ITERATION_COUNT to LOG_ITERATION in settings.dist. * Renamed STORE_SEEN_COUNT to LOG_PNT_SEEN_COUNT in settings.dist. * Renamed STORE_ITERATION_COUNT to LOG_PNT_ITERATION in settings.dist. * Renamed STORE_TIME to LOG_PNT_TIME in settings.dist. * Renamed STORE_TIMEVAL to LOG_PNT_TIMEVAL in settings.dist. * Renamed LOG_THREAD_ID to LOG_PNT_THREAD_ID in settings.dist. * Improved the log_stats and log_changed output a bit. Version 5.1.0: * Fixed the FREED_POINTER_DELAY functionality. * Removed PROTECT_BLOCKS from settings.dist because was unused. * Added contrib/tsecs perl script which converts epoch secs to ctime. * Removed the unused check-lists debug token. * Fixed the realloc-copy and never-reuse functionality. * Improved the stats output. * Added many automatic tests to dmalloc_t. * Expanded the arguments to dmalloc_examine to return more information. * Found/fixed problem where last-used mark was not set right properly. * Found/fixed bad problem where leaked memory was not being reported. Version 5.0.2: * Fixed some problems and improved code in the test utility dmalloc_t. * Integrated an internal random number generator to stop recursion. * Improved some of the configure script internals. * Added support for a.exe and other cc output forms for Windoze. Version 5.0.1: * Updated configure.ac script. * 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. * Added the per-pointer checking for cleared free memory. * Compressed the per-pointer admin structure by 8 bytes. Version 5.0.0: * Added -M --memory-limit argument to dmalloc to limit allocations. * Deprecated log-blocks and heap-check-map debug tokens. * Added a currently in use stats to log-stats. * Removed a number of old error codes. * Fixed some literal ranlib entries in the Makefile.in. * Removed the USE_DMALLOC_LEAP functionality to simplify. * Added a function to re-open the logfile when processing flags. * Added section to docs about debugging daemon and CGI processes. * Made some cosmetic improvements to the configure.in script. * Due to public pressure, I've made free(0L) not an error by default. * Added separate characters for blanking allocs (0xda) vs frees (0xdf). * Removed short token support. Was anyone using this? * Did some more work on testing and chunk.c changes. * Added better autoconf checking of thread libraries for FreeBSD. * Added dmalloc_debug_setup function to set dmalloc flags thru a call. * Significantly changed how the library manages fence protected allocs. * Renamed _dmalloc_logpath to dmalloc_logpath to match the docs and .h. * Solved problem with dmalloc_t and no sbrk. * Added INTERNAL_MEMORY_SPACE setting to the settings.dist file. * 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. Version 4.8.1: * Added --enable-shlib to configure to enable building of shared libs. * Added autoconf handling of the shlibdir for installing shared libs. * Added improvements to the shared library creation in the Makefile. * Fixed the #ident "..."; semi-colon problem. Version 4.8.0: * Added OpenBSD port information. Hopefully Free/Net/... BSD as well. * Renamed malloc.h to malloc_funcs.h to avoid system conflicts. * Made log-unknown the default and depreciated the token. * Added log-known token to _only_ report on known (file/line) memory. * malloc_verify, dmalloc_verify now return [D]MALLOC_VERIFY_[NO]ERROR. * Just about every dmalloc function now initializes the library. * dmalloc_debug now takes unsigned-int flags and returns the old flags. * debug_current now returns an unsigned int flag value. * Added autoconfig handling of #ident. I hate Unix's lack of standards. * Fixed a bug in chunk.c. Version 4.7.1: * Fixed problem with check-blank on but not free-blank or alloc-blank. Version 4.7.0: * Added support for --disable-cxx and --enable-threads to configure. * Added autoconf code to see if the return macros work for an system. * Renamed USE_RET_ADDRESS to USE_RETURN_MACROS in settings.dist/h. * Added threaded C++ library support to Makefile. * Fixed problems with -p and -m not setting the debug flags. * Added 'force-linear' and depreciated the 'allow-nonlinear' token. Version 4.6.0: * Reworked internal init values for env vars pointed out by Carlton. * Fixed bug found by Mcvey where the 1st dblock alloc in block missed. * Moved to 'make cxx' and 'make installcxx' for building C++ library. * 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 functions. * Added autoconf building of cxx library per Dimitri's comments. * Revamped rpm.spec and renamed to dmalloc.rpm per Dimitri's comments. Version 4.5.2: * Fixed bug in chunk.c pointer checking. Thanks Ezra. * Cleaned up some of the compat.[ch] headers to better match reality. * Reorganized dmalloc.texi documentation and moved to using makeinfo. Version 4.5.1: * Fixed a compilation problem in dmalloc_lp.c. Version 4.5.0: * Added new dmalloc_mark() and dmalloc_log_changed() functions. Version 4.4.0: * Removed the stupid old Deansify.pl script. * Added rpm.spec file to the distribution. * Added code to fix some recursive problems with open and atexit. * Basically encorporated Randell's changes [finally]. Thanks dude. * Removed the stupid chunk.c unions. Why did I ever do that? * www.dmalloc.com -> dmalloc.com. * Added better help messages to dmalloc. * Fixed Makefile.dep creation with _th.o special objects. * Fixed the outputting of gratuitous colons. * Added @uref texinfo tags and new texinfo.tex. Version 4.3.0: * Fixed problems on Linux with the strdup macro. * Added copyright and url info for ident and what. * Added support for PTHREAD_MUTEX_INITIALIZER. * Added USE_DMALLOC_LEAP define in the settings.dist file. * Dmalloc now looks in the current directory for .dmallocrc before ~. * Rewrote a significant piece of the dmalloc utility. * Increased the filename size from 40 to 100 characters. Version 4.2.0: * Improved the autoconfig of abort and qsort safety. * Added memory tracking function to be called on each mem transaction. * Added DUMP_UNFREED_SUMMARY_ONLY variable to settings.dist. * Added MEMORY_TABLE_SIZE and MEMORY_TABLE_LOG vars to settings.dist. * Fixed problem with valloc exposed by moving to random(). * Fixed long standing problem with the NEVER-REUSE token. * Added memory table code for grouping of allocated and non-freed mem. * Removed a number of static variables for string buffers. * 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. Version 4.1.2: * Fixed really bad bug which basically killed pthread support. Version 4.1.1: * Fixed signal autoconfiguration. Version 4.1.0: * Added HTML versions of the manuals to the releases. * Added FREED_POINTER_DELAY in settings.h. Delays pointer reuse. * Renamed allow-zero token to be allow-free-null. * Added LOG_TIME_NUMBER and LOG_CTIME_STRING to the settings.h. * Disabled the log-thread-id macro. Use LOG_THREAD_ID in settings.h. * Disabled the log-stamp macro. Use LOG_TIME_NUMBER in settings.h. * Added -g (--gdb) flag to dmalloc utility along with gdb script. * Added missing delete[] function to the C++ code. * 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 first-time error message. * Renamed print-error token to print-messages. * Increased the default max memory size from 16mb to 64mb. Version 4.0.3: * Found and fixed a bug when reallocing a previous valloced section. Version 4.0.2: * Fixed a problem in return.h and DMALLOC_UNKNOWN_FILE. Version 4.0.1: * Added startup messages acknowledging the thread status. * Fixed problem with thread compilation and chunk.c. * Fixed possible race condition with synchronizing with external sbrks. * Migrated in new argv code. Version 4.0.0: * Made a small change to the solaris return.h code. * Added recalloc support into the library. * Cleaned up the calloc special handling and accounting. * Added valloc support to the library for OSF thread libraries. * Improved the pthread autoconfiguration and the code. * Got rid of the _dmalloc_file and _dmalloc_line crap. * Added FTX return.h information. * Added direct strdup support to the library. Version 3.3.1: * Shifted some flags to ints instead of longs. * Improved error string handling. * Removed allocation macros from the docs and the header. * Added realloc(pnt, 0) works like free(pnt). * Reworked log_error_info routine's dumping of the upper fence post. Version 3.3.0: * Added THREAD_LOCK_INIT_VAL autoconfigure. * Performed some long overdue major code cleaning. * Renamed argv.[ch] to dmalloc_argv.[ch] to not clash with argv files. * Added return address handling for SGI. * Added better C++ overload functions. * Added test for DMALLOC_SIZE unsigned-ness. * Added a FINI_DMALLOC setting to settings.dist for OSF __fini_ stuff. * Added pthread lock_on -o environmental settings. Version 3.2.1: * Added to dmalloc the ability to recognize its internal tags. * Added better documentation of auto-dmalloc_shutdown. * Fixed a number of signed/unsigned problems. * Removed autoconf rule in Makefile.all. * Cleaned up pthreads locking delay code. Version 3.2.0: * Added catch-signals debug token. * Improved configure script to use cache and new autoconf macros. * Updated the GNU support scripts and configure. * Fixed the locking for pthread programs. Dumb errors. * Ran new fillproto on h-files. IMPORT -> extern. Version 3.1.3: * Removed silent dumps of test program. * Removed some unresolved references in argv.c: strcasecmp, strdup. * Fixed some porting problems to Unixware. Unsigned chars!! Version 3.1.2: * Changes to basic-block handling in chunk. Fixed non-linear code. * Added inital thread locking for debugging threaded programs. * Added settings.dist file which is copied to settings.h during config. * New attempts to auto-configure DMALLOC_SIZE for size_t. * Added dmalloc_aborting flag in case kill or abort recurses. * Added new[] C++ function. Version 3.1.1: * Added better non-linear processing. * Made non-linear now default behaviour with internal dmalloc tags. * Fixed up dmalloc_t to propogate errors better. Version 3.1.0: * pulled manual settings out of conf.h to settings.h. * Added error-dump token for dumping-core and continuing on errors. Version 3.0.7: * New release to fix some version problems. Version 3.0.6: * Added Web pointers to online documentation. * Added abort() auto-configuration for KILL_PROCESS. * Fixed problem with NEVER_REUSE and realloc same block-size. * 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. * 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. * Added allow-zero token for not minding malloc(0) and free(0L). * Made all chunk.c global counters longs. Version 3.0.5: * Fixed some old references to malloc in docs. Version 3.0.4: * Definitions for DMALLOC_PNT and DMALLOC_FREE_RET. * Removed all STRDUP and BDUP macros. Was anyone using them? * Added a "dying" message when _malloc_die is called. * Reworked the manual a ton. Added Quick-Start+Installation sections. Version 3.0.3: * Added dmalloc.cc C++ file to distribution. * Default is now to build/install a libdmalloclp.a library. * Removed the log-error tag. If logfile set then errors are logged. * Fixed problem with new args clearing all old ones. * Added dmalloc.h.2 creation to config.status file. * Added a startup message with the debug flags used to logfile. * Fixed errors with FUNC_CHECK code. * Added default tags: default,low,medium,high,all to dmalloc. * Renamed 'check-free' token to 'check-blank'. * Made many changes to make it easier to get running with dmalloc. * Added long(-L)/short(-S) options to output debug-tokens in env. * Changed some dmalloc options: * -T (list-tokens) -> -D (debug-tokens) * -L (list-tags) -> -t (list-tags) * Added better error logging in chunk. * Added DG/UX code to return.h and atexit.c to contrib. Version 3.0.2: * Fixed strtok error in dmallocrc file processing. * Fixed problems with env code when sprintf doesn't returns int. * Library now dumps the proper fence-bottom bytes on 1st pointer error. * Fixed casting problems on OSF. Version 3.0.1: * Combined all env variables into DMALLOC_OPTIONS. * Added -n flag to dmalloc program for printing/not-doing actions. * Fixed zsh and [t]csh alias messages in documentation. # Added mkinstalldirs and install.sh to distribution. * Renamed _dmalloc_error to dmalloc_error. * Removed time() and getpid() from compat functions. * Changed DMALLOC_DEBUG_DISABLE flag to DMALLOC_DISABLE. * Fixed some include file auto-include messages. Version 3.0.0: * Fixed a problem with some list checking. * Fixed possible recursion problem. * Tons of name changes going from malloc_dbg -> dmalloc. Version 2.2.1: * Small fix to malloc_dbg.3 to remove IMPORT's. Version 2.2.0: * Fixed xmalloc,xrealloc,etc. override functions. * Added xstrdup to the x override function list. * Added ability to combine adjacent free blocks into one. * 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. * Added KILL_PROCESS macro to configuration scripts. * Marty Leisner compiles library on MS-DOG! * Fixed some problems with malloc_errno set after call to error. Version 2.1.0: * Fixed problem with never-reuse going on/off and check-lists. * Added -r (random-debug) option to malloc_t. * Fixed nasty bug in realloc with alloc-blank + no realloc-copy token. * Fixed problem with ANSI-C configure on AIX systems. * Fixed some race conditions with sbrk failure. * Added -p max-pointers argument to malloc_t. * Added 'log-nonfree-space' token for logging unfreed memory space. * Added iteration count label to all logfile output. See conf.h. * Added xmalloc,xrealloc,etc. override functions. * Added better mechanisms for const definition. * Lots of install, notes, misc. changes. * Renamed token 'log-perror' and 'print-perror' to '...-error'. Version 2.0.1: * Cleaned up a number of configure/compat functions. * Fixed tons of __STDC__ defines. Finally I hope. * Added more commands to malloc_t to log information, etc. Version 2.0.0: * Lots of changes to add argv files in place of argv subdir. * Added initial support for external block locating. * Added 'allow-nonlinear' token to remove special checks. * Renamed dbg_tokens.h -> debug_tok.h and dbg_values.h -> debug_val.h * Added -V option to malloc_dbg and desc field for debug-token list. * Added a debugging section to the manual. * Added light and heavy makefile targets for automatic testing. * Much improved heap code with per-block allocations (not base 2). * Better free list management with block splitting. Version 1.3.6: * Fixed some compilation errors with non-STDC systems. Version 1.3.5: * More automatic and comprehensive malloc_t testing facilities. * Added -T (list-tokens) to malloc_dbg: for listing of debug tokens. * Added 'never-reuse' token to never reuse free'd memory. * Added on_exit and atexit support to auto-call malloc_shutdown. * Added hooks to all malloc utility functions to malloc_lp.o. * Removed debug token log-ra since log-unknown should be enough. * malloc_heap_map() -> malloc_log_heap_map() for consistency. * Added malloc_log_unfreed() to dump non-free memory to logfile. * Added -m (minus) option to malloc_dbg to allow removing of tokens. * 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 a file. * Re-added cfree() call. No reason not to have it. Version 1.3.4: * Fixed compat function problems, added checks for -std1 cc flags. * Fixed debug messages to reflect reality. * Added malloc_debug_current and changed #if __STDC__ -> #ifdef * Removed log-bad-pnt. What an unnecessary token! Version 1.3.3: * Fixed configuration problems with memcpy/bcopy and memcmp/bcmp. * Added free's file/line to log_bad_pnt messages. * Renamed all error codes to ERROR_*. Version 1.3.2: * Removed MALLOC_TRACE and -t, replaced with MALLOC_ADDRESS:0. * Fixed some const problems. * Added ability of MALLOC_LOGFILE.%d for getpid Version 1.3.1: * Added 'log-ra' token to log return-address info (NOTE: later removed) * Added the beginnings of return-address handling * Added -L or --list to malloc_dbg to list all the rc-file tags. Version 1.3.0: * Added MALLOC_TRACE variable and malloc_dbg -t (NOTE: later removed) * Added some C++ from Peter Miller to the manual. * Removed LGPL and replaced it with fully free software notices. * _malloc_perror renamed to _malloc_error * Made malloc_address exported so it can be setable by debugger. * Added auto-sensing of shell by malloc_dbg and -C option. * Removed dblock checking tokens 'check-dblock-fence' + 'check-dblock'. Version 1.2.6: * Added 'catch-null' token for quitting as soon as we get sbrk failure. Version 1.2.5: * Added -r and -k options for auto-unsetting or keeping of variables. * Added 'log-bad-space' token and added expand_buf into chunk.c. * Create log_bad_pnt in chunk. Version 1.2.4: * Added -v option to malloc_dbg to provide verbose output. Version 1.2.3: * Renamed malloc.h to malloc_dbg.h and libmalloc.a to libmalloc_dbg.a. Version 1.2.2: * Added some more point checking tests to malloc_str. Version 1.2.1: * Changed to void * internally, put STDC defines in malloc.h for ANSI. * Made a number of changes per suggestions from the net. Version 1.2.0: * Uploaded to comp.sources.unix