/lmdbg, Lightweight Modular malloc Debugger
1.2.1, Package name:
lmdbg-1.2.1, Maintainer: cheusov
LMDBG is a collection of small tools for collecting and analyzing logs of
malloc/realloc/memalign/free etc. function calls. LMDBG generates full
stacktraces and separates the logging process from analysis, thus allowing
you to analyze application on a per-module basis. Simple but powerful tools
for analisis are also provided.
lmdbg - Meta tool, all in one.
lmdbg-run - Creates malloc/realloc/free/memalign/... logs
lmdbg-sym - Converts addresses to 'file.c:NUM func_name'
lmdbg-leak - Checks for memory leaks
lmdbg-stat - Gathers statistical information about memory allocations
lmdbg-grep - Greps the stackframes
lmdbg-strip - Strips the stackframes
lmdbg-module - Enrichs the stackframes with a module name
lmdbg-sort - Sorts the stackframes by e.g. total allocated bytes,
a number of memory allocations etc.
lmdbg-sysleaks - Filters out system memory leaks e.g. libc's
Required to run:
] Required to build:
Master sites: (Expand) SHA1:
Version history: (Expand)
- (2014-02-04) Updated to version: lmdbg-1.2.1
- (2013-08-08) Updated to version: lmdbg-1.2.0
- (2012-09-03) Updated to version: lmdbg-1.1.0
- (2012-01-10) Updated to version: lmdbg-1.0.0
- (2011-12-03) Updated to version: lmdbg-0.17.0
- (2011-07-05) Updated to version: lmdbg-0.16.0nb2
CVS history: (Expand)
| 2015-01-04 03:47:06 by David A. Holland | Files touched by this commit (1) |
Use BROKEN_ON_PLATFORM for undocumented MacOS restriction.
| 2014-02-05 22:14:00 by Aleksey Cheusov | Files touched by this commit (2) | |
Update to 1.2.1
lmdbg-leaks: fix incorrect memory leak detection with calloc(3).
| 2013-08-07 23:07:25 by Aleksey Cheusov | Files touched by this commit (3) | |
Update to 1.2.0
New tool lmdbg-head(1) was implemented, see the man page for
README: recomendations for procfs
- 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.
- 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.
- 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.
| 2012-10-31 12:19:55 by Aleksej Saushev | Files touched by this commit (1460) |
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
| 2012-09-02 20:48:19 by Aleksey Cheusov | Files touched by this commit (3) | |
Update to 1.1.0
Fix in regression tests. Now "make test" exits with non-zero status
if something fails.
- 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
- Fixes. Sometimes addresses were converted to symbols
incorrectly. The problem was seen on modern Linux distros with
- Now incompletly read lines (having no LF in the end) are
ignored. This fixes crashes and therefore empty output or
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.
| 2012-03-09 20:10:04 by Aleksey Cheusov | Files touched by this commit (1) |
clean-ups (adapted for recent mk-configure)
| 2012-01-09 20:47:36 by Aleksey Cheusov | Files touched by this commit (3) | |
Update to lmdbg-1.0.0
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
| 2011-12-02 23:45:47 by Aleksey Cheusov | Files touched by this commit (3) | |
Update to 0.17.0
Long options have been removed from all programs.
Use standard single-letter POSIX-compatible options.
- 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.
- -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
- -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.
- Fixes for Solaris
- 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.
- 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