File: NEWS

package info (click to toggle)
mpatrol 1.4.8-9
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 14,300 kB
  • ctags: 3,386
  • sloc: ansic: 25,268; sh: 8,871; makefile: 1,755
file content (815 lines) | stat: -rw-r--r-- 30,415 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
Changes for 1.4.8 (8th January, 2002)

  * Added better logging for diagnostic messages.

  * Added much-improved autoconf, automake and libtool support.

  * Added provisional HTML log file support with the HTML option.

  * The library now checks to ensure that there were not any problems writing
    the profiling and tracing output files.

  * Added better Tru64 thread-safe support.

  * Fixed a problem locating symbols for the a.out object file format.

  * Fixed diagnostics for the number of symbols read from Windows DLLs.

  * Fixed a bug which calculated the wrong total size of marked allocations.

  * The mpatrol command now has the --read-env option for using the existing
    contents of the MPATROL_OPTIONS environment variable.

  * The mpsym command now autodetects 64-bit support and now has the --skip
    option.

  * The source code now compiles properly on BSD systems.


Changes for 1.4.7 (5th September, 2001)

  * Fixed the problems building Windows DLLs.

  * Fixed the problems with stack unwinding on Tru64.

  * The mpsym command now works on LynxOS and the mpedit command now works on
    FreeBSD and supports the elvis, pico and nano editors.

  * Added ability to build a Debian package.


Changes for 1.4.6 (28th August, 2001)

  * Added many new arguments that are passed to prologue, epilogue and low
    memory callback functions and updated the tools that already use them.

  * The Windows DLL version of the mpatrol library now correctly exports the
    C++ functions defined within it.

  * Increased the maximum input line length for the mptrace and mleak commands
    due to the excessive length of some C++ identifiers.

  * Improved the UNIX Makefile when building mptrace with GUI support.

  * Added ability to build full documentation from the source code.

  * Added skeleton autoconf, automake and libtool support.


Changes for 1.4.5 (14th June, 2001)

  * Added the CHECKFORK option in order to fix the fork() problem on UNIX
    platforms explicitly.  This had to be added because the fix in the previous
    release did not work for multithreaded programs on Linux.

  * Added the HD_CONTENTS flag to the heapdiff tool.

  * Added the --source option to the mptrace command.


Changes for 1.4.4 (31st May, 2001)

  * Added ability to read, write, compare and remove allocation contents files.

  * Added the __mp_libversion() function to return the library version number.

  * The __mp_* functions can now be called as mpatrol_* functions when the
    mpatrol.h header file is included.

  * Added support for automatic compilation when TARGET=TARGET_ANY and
    ARCH=ARCH_ANY and added information about the platform in the log file.

  * SuSE Linux is now supported.

  * Added ability to trace reallocations.

  * Fixed a problem on UNIX platforms when fork() was called and the child
    process continued to make memory allocations.

  * Fixed a problem on Windows platforms when protecting pages that were
    allocated by different calls to VirtualAlloc().

  * Fixed a bug when using alloca() without full stack support.

  * Added the --hatf-file option to the mptrace command to write out the trace
    file in HATF format.  Also added running statistics to the --verbose
    option.

  * Added the --max-stack option to the mleak command.


Changes for 1.4.3 (22th March, 2001)

  * Added the --call-graph option to the mprof command and fixed a rare bug when
    displaying the leak table and call graph with call sites which have no
    associated symbols.

  * Added the --gui and --verbose options to the mptrace command, which now also
    displays useful statistics.

  * Added chapters on heap corruption, memory leaks and porting to the mpatrol
    manual and moved the Tools and Utilities sections to the top level.


Changes for 1.4.2 (12th March, 2001)

  * Added the LEAKTABLE option which displays a leak table at the end of program
    execution.  Also added functions for users to manipulate the leak table.

  * Added the __mp_iterateall() function to walk the entire heap, including
    free blocks and internal allocations.  The __mp_info() and __mp_printinfo()
    functions now also return information about free blocks.

  * Added functions to print to the log file along with their source position
    and a stack traceback.

  * Added the __mp_errno global variable and a function to obtain the error
    message string corresponding to an error code.

  * Added __mp_init_* and __mp_fini_* initialisation and finalisation function
    support.

  * Finished the support for marked allocations.

  * Tru64 is now supported.

  * The library is now no longer initialised on Linux until the environment
    variables are fully set up.

  * Removed calls to ZeroMemory(), etc. on Windows platforms as they ended up
    calling memset(), etc. thus defeating the whole purpose of the original
    change!

  * Fixed a problem building the shared version of the mpatrol library with some
    versions of GNU C++.

  * Added the --sim-file option to the mptrace command to provide trace-driven
    memory allocation simulation support.

  * Fixed the mpsym command which had problems when GDB displayed lines that
    were too long.  Also now uses progfile.log if mpatrol.log cannot be found.

  * Added Dmalloc-compatible function implementations as an external package.

  * Forgot to build the Dbmalloc module and install its header file in the
    previous release.  Also now read all relevant Dbmalloc environment variables
    on initialisation and mapped all Dbmalloc error codes onto mpatrol errors.
    Fixed the malloc_inuse() function for marked allocations.

  * Added chapters to the mpatrol manual describing the tools supplied and the
    leak table.

  * Added the AUTHORS, CHECKSUMS and THANKS files.


Changes for 1.4.1 (27th February, 2001)

  * Added the __mp_atexit() and __mp_setmark() functions.  Also added more
    fields to the information returned by __mp_info() and better source-level
    information when __mp_check() is called.

  * Added the FREMRK error for when an attempt is made to free a marked memory
    allocation.

  * Fixed a problem which prevented the const keyword being used when compiling
    with a C++ compiler.

  * Fixed a problem when profiling memory reallocations.

  * Fixed a typing error which would prevent compilation on Windows platforms.
    Also fixed std namespace problems for set_new_handler() on Windows
    platforms.

  * Changed HEAPDIFFSTART() and HEAPDIFFEND() to their lowercase equivalents and
    added support in the heapdiff tool for marked memory allocations.

  * Added Dbmalloc-compatible function implementations as an external package.

  * The trace file in the mtrace tool is now automatically closed at exit.


Changes for 1.4.0 (21st February, 2001)

  * Added release versions of all of the mpatrol library functions that can be
    used to quickly remove all mpatrol features by linking with libmpalloc.
    Changed the arguments to the MP_MALLOC() family of functions so that the
    pointer being manipulated is always the first argument.

  * The log file now displays a summary of all of the symbols loaded from the
    main executable file and any shared libraries.

  * The C++ operators are now ANSI standard conforming, with new versions that
    throw the std::bad_alloc exception when no more memory is available.  The
    mpatrol library is now built with a C++ compiler by default on some
    platforms.

  * The alloca() family of functions now abort instead of returning NULL when
    there is no more memory available.  Also added the BSD reallocf() function.

  * Added a function to read the value of any mpatrol option at runtime.  Also
    added a function that can set most mpatrol options at any point in a
    program's execution.  In addition, a function has been added to obtain
    symbolic information about a code address from the mpatrol symbol manager
    and another function added to associate user-specific data with a particular
    memory allocation.

  * Added functions to snapshot the heap and iterate across all memory
    allocations in the heap.  Also added functions to write strings, hex dumps,
    memory allocations and current call stacks to the mpatrol log file, as well
    as the ability to edit or view specific source files from within a program
    when it is running.  A function is also now available to obtain various
    statistics about the current state of the heap.

  * The CHECK option is now zero by default, which means that the library does
    not perform as much checking by default as it did before.  Also added a
    frequency argument to the CHECK option so that checking can be performed
    every nth time across a given range.

  * Changed the behaviour of the NOFREE option so that NOFREE=0 really does mean
    that all memory allocations will be freed immediately.  A large finite
    number must given to the NOFREE option in order to mimic the old behaviour
    of the NOFREE=0 option.

  * The mpatrol library now calls FillMemory(), etc. on Windows platforms in
    order to perform memory operations faster than would normally be done with
    __mp_memset(), etc.

  * Fixed a bug in the strdup() and realloc() families of functions that would
    be triggered if they ran out of memory.

  * Fixed a bug in memalign() which meant that if the alignment was specified as
    zero then the system page size would be used instead of the default system
    alignment.

  * GNU C++ destructor symbols are now recognised and preserved when reading
    the symbol tables from object files.  Previously this meant that memory
    allocations from such destructors were recorded as having occurred in the
    wrong place.

  * Added the return address as an additional argument to the prologue and
    epilogue handlers.

  * The hexwords command now searches for a dictionary in several other
    locations if the default dictionary is not found.

  * Added an Automake macro for use when incorporating mpatrol into a new or
    existing project.  Also added a new header file which can be used to
    include mpatrol.h, mpalloc.h or neither depending on whether the mpatrol
    or mpalloc libraries are available.

  * Added the allocstop, reallocstop and freestop commands to the .gdbinit
    configuration file so that it is possible to stop at specific allocations,
    reallocations and deallocations when debugging a program.

  * Added new tests demonstrating the MP_MALLOC() family of functions and the
    __mp_snapshot() and __mp_iterate() functions.  Also improved some of the
    existing tests to make use of the new functions.

  * Added a tools directory containing additional source code for the mpatrol
    library.  Currently contains packages for determining the difference in the
    heap between two points in a program's execution, a GNU-compatible mtrace()
    function and a memory allocation gauge.  A new library is also available
    which contains these packages.

  * The mpatrol distribution now contains the mpatrol documentation and manual
    page archives which are no longer available separately.


Changes for 1.3.4 (25th January, 2001)

  * Added the MP_MALLOC() family of functions for recording the type name and
    type size of a memory allocation.  Also added the xmalloc() family of
    functions which never return NULL.

  * Added a new header file and library for use when mpatrol is not being used.

  * Added FreeBSD, NetBSD, OpenBSD and SunOS support.

  * Added the ability to read symbols from a.out files.  Also added the ability
    to build mpatrol as a shared library on AIX, as well as being able to read
    symbols from shared libraries on AIX.  The COFF and XCOFF symbol readers now
    require the use of the libld object file access library.

  * Changed the behaviour of the low memory handler to automatically retry the
    memory allocation once the handler has been called.

  * Now store information about the point of last reallocation rather than the
    point of original allocation.

  * The manual pages are now also supplied in HTML format.


Changes for 1.3.3 (6th January, 2001)

  * Added support for the -fcheck-memory-usage option of the GNU compiler.

  * Added the hexwords command to extract any words from a dictionary file that
    can be written as hexadecimal numbers.

  * The mpsym command can now make use of perl if it is installed rather than
    using the slower method of calling awk and sed.

  * The library now allocates internal memory with mmap() by default, and with
    sbrk() when the USEMMAP option is used, but only if the mmap() system call
    is supported.

  * The MP_USE_ATEXIT feature macro has been added to force the mpatrol library
    to be registered with atexit() instead of using alternative methods to
    automatically terminate the library, if they exist.

  * Added two new tests demonstrating the support for -fcheck-memory-usage.


Changes for 1.3.2 (18th December, 2000)

  * Added the TRACE and TRACEFILE options to handle memory allocation tracing.

  * Added the SHOWFREE option to display information about free memory blocks.

  * Added the mptrace command to decode a tracing output file into tabular, and
    possibly graphical, form.

  * Added the %d, %t and %f filename characters to be replaced with the current
    date, current time and full path of the executable.

  * Added information about the peak number of memory allocations to the log
    file summary.

  * Improved the handling of internal blocks used by the mpatrol library to be
    more efficient.

  * Added a chapter on tracing to the mpatrol manual.

  * Added new DVI, postscript and PDF formats for the UNIX manual pages and
    added the mpatrol_man.tar.gz archive.  Also changed the mpatrol.3 manual
    page to libmpatrol.3.


Changes for 1.3.1 (22nd November, 2000)

  * The initialisation and termination of the mpatrol library has been improved
    when compiling on ELF, GNU or C++ systems.  All memory deallocations
    resulting from C++ file-scope destructors will now be recorded as a result.

  * The thread-safe shared library version of mpatrol was not being built
    correctly with the GNU linker.  This has now been fixed, with the result
    that the library is properly initialised.

  * Improved the RPM package specification file to keep in line with the Red Hat
    PowerTools release.

  * Added the ability to build an SD/UX package for use on HP/UX.

  * Documented how to create shared libraries from archive libraries when using
    the GNU linker.


Changes for 1.3.0 (19th November, 2000)

  * Added the CHECKMEMORY option for displaying an error for each zero-size
    memory operation on a NULL pointer.

  * Added the EDIT and LIST options for editing and listing source lines that
    cause warnings or error messages.  Also added the mpedit command which is
    used by these options.

  * Changed the format of stack traces in the mpatrol log file so that symbol
    names also contain a byte offset from the beginning of the symbol.

  * Warnings and errors are now reported with error abbreviation codes.

  * Added the alloca(), strdupa(), strndupa() and dealloca() functions for
    tracing and debugging temporary stack-based memory allocations.

  * Improved the error-checking of the strdup() family of functions and also
    fixed a bug in strndup() and strnsave() where the string was not being
    terminated correctly.

  * Added support for the LOGDIR and PROFDIR environment variables.

  * ICL DRS/NX is now supported.

  * The OFLOWWATCH option is now supported on IRIX.

  * Finally fixed the determination of the address of an illegal memory access
    on IRIX platforms and added support for the SGI N32 object file format.

  * MP_FUNCNAME is now supported for C9X compilers.  Also added MP_NONEWDELETE,
    MP_NEW and MP_DELETE to prevent problems with the macro replacement of the
    C++ operators.

  * Added long options to the external commands and added --help.  The short
    options have now been heavily revised so beware!

  * Added the --show-env option to the mpatrol command and removed the implicit
    LOGALL that was always being added to MPATROL_OPTIONS.  Also added the
    --threads option to link at run-time with thread-safe libraries.

  * Fixed a problem with the mpatrol command on UNIX platforms when the command
    to be run was not supplied with a pathname.

  * The mprof command can now display the full allocation call graph for a
    profiling output file.  Added the --graph-file and --leaks options to the
    mprof command for writing out graph specification files for later
    visualisation with dot.

  * Added the ability to read the unfreed allocations table from the log file
    with the mleak command and also added the --ignore option.

  * Added the mpsym command, which makes use of a debugger to locate any missing
    symbolic information in an mpatrol log file if the USEDEBUG option does not
    work.

  * Added instructions on how to define a mallopt command in the shell which
    will set the MPATROL_OPTIONS environment variable in the current process.

  * Added new sections to the mpatrol manual on diagnostic messages and
    references to other documentation.  The manual also contains example graph
    images illustrating the new --graph-file mprof option.

  * The ASCII, GNU Info, AmigaGuide and HTML versions of the mpatrol manual and
    the texinfo.tex file used to build the printed manuals are now provided with
    the main distribution.  The PDF version of the manual now includes the
    mpatrol logo as a proper PDF image file instead of a PNG file and now
    includes thumbnail images as well.

  * Fixed the problem with margins in the PDF reference card.  The printed
    mpatrol manual is now A4 by default.

  * A Makefile is now provided to build the UNIX manual pages.

  * Added a new definition file for the Windows thread-safe DLL.

  * Made the tests work on 64-bit platforms and added 2 new tests demonstrating
    the alloca() family of functions.


Changes for 1.2.6 (18th July, 2000)

  * The NOFREE option now takes an argument which specifies the maximum number
    of freed memory allocations to preserve before returning the oldest to the
    free memory pool.

  * Fixed a regression when displaying the summary after an illegal memory
    access and also made the signal-handler thread-safe.

  * Added 64-bit support for SPARC Solaris platforms.

  * Added support for the -d option on DYNIX/ptx.

  * Added support for threads on DYNIX/ptx.

  * Moved the FAQ into the mpatrol manual.


Changes for 1.2.5 (12th July, 2000)

  * Can now determine the address of an illegal memory access on LynxOS
    platforms.

  * Fixed a bug when allocations are pages and an allocation is increased in
    size using space from a free block.

  * Added a new magic file excerpt for use with the file command.

  * Added a new build script for building Windows ZIP distributions.

  * The tests are now included when building packages.


Changes for 1.2.4 (29th June, 2000)

  * Added support for the USEMMAP option on HP/UX.

  * Can now determine the address of an illegal memory access on AIX and
    Linux platforms, and fixed a regression from 1.2.0 when detecting the
    location of an illegal memory access on platforms that support siginfo.


Changes for 1.2.3 (27th June, 2000)

  * Added more robust stack traversal support for Windows platforms.

  * Can now determine the address of an illegal memory access on IRIX and
    Windows platforms and now also the address of a misaligned memory access
    on UNIX platforms.

  * Added support for the XCOFF and Windows PE object file formats and
    provisional support for the ELF64 object file format.

  * Can now read symbols from executable files and shared libraries on Windows
    platforms.

  * Added support for the USEDEBUG option on Windows platforms.

  * Fixed long-standing problem with USEDEBUG and the GNU BFD library.

  * C++ symbol names now automatically get demangled on Windows platforms.


Changes for 1.2.2 (18th June, 2000)

  * The mpatrol library can now be built as a thread-safe library on many
    platforms.

  * Added ability to determine the program name on DG/UX M88K.

  * SINIX and UnixWare are now supported.

  * Added stack traversal support for MIPS.

  * Fixed problem with using libcl.sl on HP/UX.

  * Fixed problem with offsets of symbols read from HP/UX shared libraries.


Changes for 1.2.1 (1st June, 2000)

  * Intel LynxOS is now supported.

  * Added stack traversal support for PA/RISC, RS/6000 and PowerPC.

  * Added ability to determine the program name on AIX, HP/UX and LynxOS.

  * Added a better way of determining the program name under Linux.

  * Symbols can now be read from HP/UX and IRIX shared libraries.

  * Added a Linux Software Map index file.


Changes for 1.2.0 (16th May, 2000)

  * Added memory allocation profiling, which behaves in a similar way to mprof.

  * Added the PROF, PROFFILE, AUTOSAVE, SMALLBOUND, MEDIUMBOUND and LARGEBOUND
    options for memory allocation profiling purposes.

  * Added a new command for displaying tables from memory allocation profiling
    output files.

  * The -P and -p options to the mpatrol command are now called -X and -x.

  * The memleak tool is now called mleak.

  * The CHECK* options now display the calling function details even when the
    LOG* options are not used.

  * Added the ALLOWOFLOW option for allowing memory operations which overflow
    allocation boundaries to continue rather than being ignored.

  * The log file and profiling output file can now contain %p in their names
    which will be expanded to the name of the executable program file.

  * AIX and IRIX are now supported.

  * The recalloc() and cfree() functions now take extra arguments to be in line
    with the IRIX malloc library.

  * Added support for duplicate functions with alternative names to be defined
    as well as malloc(), calloc(), etc.

  * All replacement function definitions are now disabled in mpatrol.h if the
    NDEBUG preprocessor macro is defined.

  * Added the memccpy() function.

  * Fixed a bug in the reimplementation of memcmp() and bcmp() which used plain
    chars for comparison rather than unsigned chars.

  * Function call stack traversal is now more robust on UNIX systems, with
    the library simply stopping reading a call stack if it is corrupt rather
    than crashing.

  * Added lint support in the UNIX makefile and the ability to build a lint
    library for mpatrol.

  * Added a GDB command file for use with mpatrol.

  * Added a quick reference card.

  * Added instructions on how to build the mpatrol library as a shared library
    while also resolving references to any object file access libraries.  Also
    added references to more related software.

  * Added an image file in ASCII art for the text versions of the mpatrol
    manual.

  * Added new tests for illustrating profiling support.


Changes for 1.1.4 (10th April, 2000)

  * The mpatrol shell script is now rewritten in C and is now also available on
    AmigaOS, Windows and Netware as well.

  * Added a new command for detecting memory leaks in the log file.

  * Added a new function, __mp_printinfo(), for calling from within a debugger
    to determine information about a specific heap address.

  * Changed set_new_handler() name mangling for GNU C++.

  * Fixed a typing error in inter.c for Windows platforms.

  * Added a makefile compatible with Microsoft's nmake on Windows platforms.

  * The filenames of some object libraries have been changed to prevent
    conflicts when building the mpatrol command.

  * Added untested support for Parasoft Inuse.

  * Added new tests for freeing local and global variables and also a test to
    highlight problems of overwriting pointer information.


Changes for 1.1.3 (26th March, 2000)

  * Amiga shared library support has been removed (but it didn't work before
    anyway).

  * Limited stack traversal and symbol reading is now supported on AmigaOS
    when using GCC.

  * A build script is provided for AmigaOS Aminet distributions.

  * malloc() and related memory allocation functions are now overridden without
    requiring the inclusion of mpatrol.h on Windows (and AmigaOS platforms when
    using GCC) as well as UNIX platforms.

  * Limited forms of brk() and sbrk() are now provided on certain non-UNIX
    platforms that do not have them.

  * The Windows version of mpatrol now allocates memory from the system in 64K
    chunks as that seems to be the minimum allocatable size on that platform.

  * The memory operation functions no longer initialise the mpatrol library
    if they are called before any memory allocation functions.

  * Added new tests for detecting pre-read and post-read errors.


Changes for 1.1.2 (18th March, 2000)

  * Added a section on integration to the mpatrol manual.

  * Added ability to determine source level information from call if USEDEBUG
    is enabled, even if mpatrol.h was not included.

  * Internal blocks are now allocated in larger chunks which will increase the
    efficiency of library execution and cause less memory fragmentation.

  * Added a default low-memory handler for C++ operators new and new[].

  * Added special name mangling for the GNU C++ operators.

  * Fixed a bug which occurred when allocating lots of pages using sbrk().


Changes for 1.1.1 (9th March, 2000)

  * Added a section on threads to the mpatrol manual.

  * Added the USEDEBUG option for displaying filenames and line numbers in call
    stacks if the executable file contains debugging information.

  * Changed the definitions of the C++ operators so that they now include source
    level information.

  * Added the MP_NOCPLUSPLUS preprocessor macro for disabling C++ support in
    mpatrol.h.

  * The mpatrol.h header file should have less incompatibilities with the
    library functions that it overrides.

  * The prologue and epilogue functions are now only called for user allocations
    and not internal mpatrol allocations.

  * The memory operation functions now continue to function even when the
    mpatrol library has been terminated.

  * Support has been added for building a tape archive distribution.

  * Added a new C++ test.


Changes for 1.1.0 (30th January, 2000)

  * Added a new file containing answers to frequently asked questions.

  * Added references to the memory management reference, FreshMeat and eGroups
    in the mpatrol manual.  Also added more related software and removed the
    authors from the concept index and added a complete tutorial.

  * Changed the suffix of the ASCII documentation from .doc to .txt since it
    was being wrongly assumed to be a Microsoft Word document.

  * Object libraries are now no longer built when the all Makefile target is
    used.

  * The library now replaces the memset(), bzero(), memcpy(), memmove(),
    bcopy(), memcmp(), bcmp(), memchr() and memmem() functions for tracing and
    debugging purposes.

  * Added the expand() function for backwards compatibility with other C
    libraries.

  * Added the LOGMEMORY option to log all calls to memory operation functions.

  * Added the SAFESIGNALS option which is now no longer enabled by default.

  * Added a summary of bytes compared, located, copied and set when
    __mp_summary() is called.

  * Dynamic symbols are now used on GNU BFD as well as ELF when the object file
    has been stripped of its symbol table.

  * Relevant options and flags have been added for future mallopt() support.

  * Added new tests for the tutorial and memory operation functions.


Changes for 1.0.8 (20th December, 1999)

  * Added the utilities and library functions sections and documented the pkg
    directory and how to use other libraries with mpatrol in the mpatrol manual.

  * Made reading the ELF dynamic linker independent of file format since Linux
    now uses the GNU BFD library rather than the ELF access library.


Changes for 1.0.7 (29th November, 1999)

  * Added the overwrites and underwrites, testing, library behaviour and general
    errors sections and the how it works chapter to the mpatrol manual.

  * Added support for building PKG and RPM packages.


Changes for 1.0.6 (25th November, 1999)

  * Removed the NOTES, INSTALL and EXAMPLES files as their contents are now
    entirely in the mpatrol manual.

  * Added the operating system support, using mpatrol, improving performance and
    library performance chapters to the mpatrol manual.

  * Added lots of software for AmigaOS to the related software section in the
    mpatrol manual.

  * Added new library performance figures.

  * Added the FAILFREQ and FAILSEED options.

  * The __mp_trap() function now does nothing so that it can be used as a
    breakpoint target in a debugger.

  * Increased the maximum size of the MPATROL_OPTIONS environment variable from
    256 to 1024 bytes.


Changes for 1.0.5 (16th November, 1999)

  * Added TeXinfo documentation which can be translated to on-line manuals in
    ASCII, GNU Info, AmigaGuide and HTML format, and printed manuals in DVI,
    Postscript and PDF format.

  * Added support for allocating memory from a static array rather than the
    system heap, which might be useful on embedded systems which have no heap.


Changes for 1.0.4 (21st October, 1999)

  * Added the CHECK option.


Changes for 1.0.3 (19th October, 1999)

  * Improved library performance.

  * Added library performance figures.

  * Added total number of warnings and errors to summary.


Changes for 1.0.2 (15th October, 1999)

  * Added the USEMMAP option for UNIX platforms so that mmap() can be used
    instead of sbrk() to allocate heap memory on systems that support it.


Changes for 1.0.1 (13th October, 1999)

  * A bug that appeared when the mpatrol library was statically linked on a UNIX
    system that defaults to dynamic linking has been fixed.

  * A potential problem with losing details of some free memory blocks when the
    library runs out of system memory has been fixed.

  * Added a new examples document which illustrates the features of the mpatrol
    library with annotated examples.


Changes for 1.0.0 (11th October, 1999)

  * First public release.