======================================================================
Version 1.3.0, by Aleksey Cheusov, Sat,  2 Jan 2021 23:06:13 +0300

  Support for aligned_alloc(3) was added.

  Modernize build system, mk-configure>=0.29.1 is required.

  Undefine _FORTIFY_SOURCE when compiling liblmdbg.

  Introduce LMDBG_ALLOW_WRITEABLE (rWx flag for memory segment)
  environment variable.  By default this flag is set to True, which
  allows to fix problem with lmdbg-sym seen on M$ WSL/OpenSuSE.

  lmdbg-leaks: fix the order of output, now it does not depend on AWK.
  implementation.

  Fixes and improvements in tests.

======================================================================
Version 1.2.1, by Aleksey Cheusov, Wed,  5 Feb 2014 23:17:46 +0300

  lmdbg-leaks: fix incorrect memory leak detection with calloc(3).

======================================================================
Version 1.2.0, by Aleksey Cheusov, Tue,  6 Aug 2013 12:51:53 +0300

  New tool lmdbg-head(1) was implemented, see the man page for
  details.

  README: recomendations for procfs

  lmdbg-sym:
    - Much simplier (and correct) method for address convertion was
      implemented. As a result lmdbg-sym works correctly on AltLinux
      where ASLR and PIE are enabled by default.
    - Breakpoint are removed very soon after creation.
      This saves a lot of memory consumed by gdb(1)
      and dramatically speeds up it.

  lmdbg-run:
    - Arguments are passed correctly to progname
    - On glibc-based systems (e.g. Linux) malloc hooks are not used
      anymore as they are declared deprecated
    - Addresses from lmdbg.c are not included to stacktrace
    - Additional checks for address (returned by stacktrace(3))
      correctness.  As a result gdb(1) doesn't crash and therefore
      lmdbg-sym(1) work correctly.
    - stacktrace(3) doesn't not crash anymore on NetBSD/x64_64 with
      system utilities.  See implementation details in stacktrace.c.
    - New option -N
    - Option -v works correctly with non-zero exit status of progname.
    - Exits with error if progname is not specified.

  lmdbg-stat:
    - Fix for NULL dereference appeared if free(3) or realloc(3)
      stacktrace is seen without appropriate malloc(3) stacktrace.

  AWK interpreter is found at configure time via MKC_REQUIRE_PROGS.

  Build and regression tests were fixed for non-empty MAKEOBJDIR case.

  ChangeLog file is never installed.

  lmdbg-s2m and lmsbg-m2s was moved to libexec dir.

  mk-configure >= 0.24.0 is required for build.

  Fixes, improvements and additions in regression tests.

======================================================================
Version 1.1.0, by Aleksey Cheusov, Sun,  2 Sep 2012 19:04:21 +0300

  Fix in regression tests. Now "make test" exits with non-zero status
  if something fails.

  lmdbg-run:
    - Zero addresses are removed from stacktraces generated by glibc's
      backtrace(3).  This fixes asserts in lmdbg-stat(1).
    - Double "0x" in "info section" were fixed (seen on NetBSD).
    - backtrace(3) from libexecinfo is used instead of builtin
      implementation if the library and execinfo.h are available
      (FreeBSD, NetBSD).

  lmdbg-sym:
    - Fixes. Sometimes addresses were converted to symbols
      incorrectly. The problem was seen on modern Linux distros with
      recent gdb(1).

  lmdbg-stat:
    - Now incompletly read lines (having no LF in the end) are
      ignored.  This fixes crashes and therefore empty output of
      lmdbg(1) when analysed program is killed.
    - Alternative implementation written in awk was removed.

  Build infrastructure was converted to 2-level dirs.
  This requires mk-configure>=0.23.0 for build.

  Minor clean-ups in man pages and Makefiles.

======================================================================
Version 1.0.0, by Aleksey Cheusov, Mon,  9 Jan 2012 21:56:33 +0300

  libstacktrace:
     Remove signal handlers and other garbage.
     All we need is __builtin_frame_address and __builtin_return_address
     builtins and nothing else.

  Documentation files have been moved to subproject "doc".
  Run "mkcmake install-doc" for installing it (or change SUBPRJ_DFLT).

  Only backtrace(3) in libc is accepted as an external implementation
  of stacktrace(3). This may fix build failure on FreeBSD with
  installed libexecinfo.

======================================================================
Version 0.17.0, by Aleksey Cheusov, Sat,  3 Dec 2011 01:06:02 +0300

  Long options have been removed from all programs.
  Use standard single-letter POSIX-compatible options.

  lmdbg-sym:
    - Doesn't accept progname as an argument anymore.
      Use -P option instead.
    - option --with-so was replaced with -s.

  SORRY FOR INCOMPATIBILITIES WITH PREVIOUS RELEASES.

                                    ----------------------------------

  lmdbg:
    - -M option was added. lmdbg(1) is now a meta tools which is able
      to not only collecting memory leaks. See the manual page for
      details.
    - -n option was added
    - -T and -B options were added
    - Regression tests were added for -M

  A lot of improvements and grammar fixes in manual pages.
  Thanks to Nikolai Krot for this.

  lmdbg-stat, tests/test.sh:
    - Fixes for Solaris

  lmdbg-run:
    - options -T and -B were added to lmdbg-run.
    - option -n was added. It disables logging on startup.
      Sending SIGUSR1 signal to the process enables it.
    -f option was added, synonym for -p.

  lmdbg-grep.1:
    - documentation for "bytes" variable

  If set, LMDBG_MODULES_AWK and LMDBG_STRIP_AWK environment variables
  are used as a path to AWK interpreter by "lmdbg-modules" and
  "lmdbg-strip" programs respectively.

  More regression tests

======================================================================
Version 0.16.0, by Aleksey Cheusov, Thu, 16 Dec 2010 17:54:22 +0200

  Spelling corrections in man pages

  lmdbg-stat:
    - reimplemented in C. Now it uses libJudy library.
      See INSTALL for details.

  lmdbg-run:
    - NULL is *always* output as string "NULL"

======================================================================
Version 0.15.1, by Aleksey Cheusov, Thu,  7 Oct 2010 22:22:16 +0300

  FIX: On Linux/glibc systems lmdbg-run may fail (assert(3))
  because calloc(3) actually uses malloc(3). So, logging calloc(3)
  has been disabled.

  mk-configure >= 0.20 is required for building.

  Minor fixes and clean-ups.

======================================================================
Version 0.15.0, by Aleksey Cheusov, Wed, 26 May 2010 16:17:27 +0300

  Latest "mk-configure" is required for building.

  External tool "runawk" is needed for newly created "lmdbg-strip" and
  "lmdbg-modules" programs. http://sourceforge.net/projects/runawk/

  New utility "lmdbg-module" for enriching stacktraces given on input
  with information about module by set of rules specified by user.

  New utility "lmdbg-strip" for sripping stacktrace given on input.

  lmdbg-sort:
     - new sorting field "num"
     - minor fix in sorting order (Linux + gawk)
     - support for "info modulestat" input

  lmdbg-grep:
     - new variables to check: "op", "op_type" and "bytes".
     - new field to grep: "module".

  lmdbg-stat:
     - accepts "num: <num>" per-stacktrace information on input

  lmdbg:
     -ofilename is accepted and is equal to '-o filename'.

  lmdbg-run:
     - -ppipe is accepted and is equal to '-p pipe'.
     - by default 'num: <number>' tokens are output for each stacktrace.

  lmdbg-m2s, lmdbg-s2m:
    Internal singleline format has changed. As a result lmdbg-m2s|lmdbg-s2m
    pair works correctly with input that doesn't have real stacktraces.

  Fix in usage message for most lmdbg-* programs.

  Fixes for warnings messages produced by gcc.

  More regression tests.

======================================================================
Version 0.14.0, by Aleksey Cheusov, Tue, 13 Apr 2010 17:06:26 +0300

  New tools: lmdbg-stat, lmdbg-grep and lmdbg-sort for collecting and
  analysing statistical information about memory allocations.

  lmdbg-run: new options for lmdbg-run: -S and -M for generating
  shortened stacktraces.

  lmdbg-sym: new option -p for obtaining program name from lmdbg-run's
  output.

  fix: 'mkcmake test' remove its temporary files.

======================================================================
Version 0.13.0, by Aleksey Cheusov, Sun, 31 Jan 2010 18:40:05 +0200

  INSTALL: updated

  mk-configure>=0.14.0 is needed to build lmdbg.

  FIXED: 'make install' command installs test utilities from tests/
  subdirectory. Thanks to Mikolaj Golub for bug report.

  lmdbg-sym:
    - LMDBG uses very tricky features of GDB. As a result GDB may
      segfault on some platforms, e.g. gdb-6.4.90-debian fails on
      Debian/Etch.  In order to show users that GDB is buggy and needs
      to be fixed, an exit status of it is checked. For this purpose
      http://sf.net/projects/pipestatus/ is needed.
    - LMDBG_GDB environment variable sets the path to gdb program
      overiding path defined at build time. See scripts/Makefile.

  For better efficiency lmdbg-multi2single and lmdbg-single2multi
  internal scripts have been reimplemented in C and renamed to
  lmdbg-m2s and lmdbg-s2m respectively.

  Built-time AWK variable sets an AWK interpreter for awk script.
  See scripts/Makefile.

======================================================================
Version 0.12.0, by Aleksey Cheusov, Sun,  3 Jan 2010 14:05:15 +0200

  ADDED: support for calloc(3) and posix_memalign(3).

  Latest mk-configure is required for building.

  A target for testing lmdbg is again "test"! :-)

  Partial support for OpenBSD. Partial because I don't know how to
  detect where shared lib's code begins, there are no /proc/$$/maps.

  added: -a and -g options for "lmdbg" script.

  cleanups:
    - SHLIB_MAJOR/MINOR are used instead of dirty hacks.

  "make test" is now friendly with MAKEOBJDIR

  More regression tests.

======================================================================
Version 0.11.0, by Aleksey Cheusov, Sat, 25 Jul 2009 01:48:15 +0300

  Support for modern Linux/glibc where libraries are loaded
  to different regions of the virtual memory
  (See http://en.wikipedia.org/wiki/Address_space_layout_randomization).
  To handle this lmdbg-run adds the special "info section" information
  obtained from /proc/<pid>/maps available on NetBSD and Linux
  to the log file, and lmdbg-sym uses this information.

  fixed: enabling malloc logging in lmdbg-sym was an extreamly strange
  idea.  This was just an oversight. Now it is disabled.

  ***** A TARGET FOR TESTING LMDBG IS NOW "check", NOT "test"! *****

  Additional regression test for lmdbg-sym and shared libraries.

  WARNS=4 for libstacktrace library

  WARNS=4 for liblmdbg library

  Two internal helper scripts:
  scripts/lmdbg-multi2single and scripts/lmdbg-single2multi.

  Other minor improvements, clean-ups and fixes.

======================================================================
Version 0.10.0, by Aleksey Cheusov, Sun, 31 May 2009 15:17:20 +0300

  Completely NEW build system based on NetBSD make (aka bmake),
  mk-configure and pkgsrc's mk-files.  It makes building LMDBG a bit
  harder (user have to install new building tools, most probably from
  sources :-( ) but makes the code *much* simplier and makes
  development and supporting *drammatically* easier. See INSTALL file
  for the installation instructions.

  This release of LMDBG was sucessfully tested under the following
  platforms: NetBSD-5.0/x86/gcc, NetBSD-4.0/x86/gcc,
  Linux/glibc-2.3/x86/gcc, FreeBSD-6.2/x86/gcc and Solaris-10/x86/gcc.
  NetBSD-2/alpha/gcc also partially works (unfortunately gcc's
  __builtin_return_address and __builtin_frame_address return NULL
  with non-zero arguments on NetBSD-2/alpha :-(, that is stacktrace
  consists on single stack frame).

  - Now all utilities have man pages.

  - separation of libstacktrace library which is compatible (has a
    similar API) with GNU libc's backtrace(3) but works just perfectly
    under NetBSD, FreeBSD and Solaris.

  - lmdbg-leak-check has been renamed to lmdbg.

  - lmdbg-sysleaks:
    - Two new keywords in config file: ignore_basefile, ignore_baseline.
    - Support for shitty Solaris' /bin/sh.

  - lmdbg-sym:
    Fixes for -a mode. Now it outputs results in the same format as -g.

  - lmdbg-run and lmdbg-sym:
    LMDBG_ENV environment variable...

  - LMDBG_LIBDYN variables has been renamed to LMDBG_LIB.

  - tests/test.sh:
  Diverse fixes for Solaris
    - support for shitty shell :-/
    - 0x vs sprintf('%p", ...)

  - lmdbg.c:
    fixed: log_enabled variable is set from gdb, so it must not be static.
    fixed: lint(1) warnings.

  - Both libstacktrace and liblmdbg libraries are built with '-O0 -g'
    flags.

======================================================================
Version 0.10alpha1, by Aleksey Cheusov, Sun, 29 Mar 2009 17:13:04 +0300

  Good bye GNU autotools aka autohell! Now lmdbg is built using
  http://sf.net/projects/mk-configure and NetBSD bmake.

  I'll describe other changes in 0.10.0 release.

  This release is intermediate.

======================================================================
Version 0.9.0, by Aleksey Cheusov, Sun,  8 Mar 2009 12:59:45 +0200

  stacktrace.c + stacktrace.h = libstacktrace with API
  compatible with GLIBC's backtrace(3).
  See install.stacktrace Makefile's target.

  Code clean-ups

======================================================================
Version 0.8.1, by Aleksey Cheusov, Sat, 28 Feb 2009 15:58:33 +0200

  GPL phantoms were completely removed.

  Minor fixes in Makefile

  Minor clean-ups in stacktrace.c

======================================================================
Version 0.8.0, by Aleksey Cheusov, Sun, 22 Feb 2009 23:07:59 +0200

  Completely new implementation of stacktrace function.  Now it is my
  own, portable to almost any hardware where gcc works. There is no
  limit on i386 anymore. YAMD code was thrown out.  GPL was thrown out
  too. I prefer MIT license.

  Documentation is now in READ file. Read it! ;-)

  Lots of regression tests was written. This release of LMDBG were
  sucessfully tested under the following platforms:
    NetBSD/x86/gcc
    NetBSD/alpha/gcc
    FreeBSD/x86/gcc
    Linux/x86/gcc
    Solaris/x86/gcc

  lmdbg-sym:
      added: -g option, synonym for --with-gdb.
      -g becomes the default.
      added: -a option for using addr2line(1) instead of gdb(1).
      fix for Solaris (printf ("%p") doesn't output leading 0x).

  lmdbg-run:
      added: -p option, synonyms for --pipe.
      malloc uses --> as a separator, not ->.

  lmdbg-check ins splitted in two executables:
     lmdbg-leaks    - for normal memory leaks,
     lmdbg-sysleaks - for memory leaks in system/external libraries.
     See README file.

======================================================================
Version 0.4.1, by Aleksey Cheusov, Sat, 21 Feb 2009 13:41:37 +0200

  fix: lmdbg can also be build by BSD make.
       GNUmake-isms were removed from Makefile.in.

======================================================================
Version 0.4.0, by Aleksey Cheusov, Thu, 28 Aug 2008 11:53:42 +0300

  FIXED: segfault under Linux (glibc-2.3.6). It happens because
      (not checked) dlsym/dlopen use malloc/free etc.

      Now, under Linux glibc's __malloc_hook, __realloc_hook
      etc. are used

  config.guess and config.sub updated

======================================================================
Version 0.0.0, by Aleksey Cheusov, Apr 2008

   first publicly available release
