Horatio's Memory Manager This is a memory manager for C programmers, documentation is provided at the following URL: http://daybologic.bitbucket.org/libhoratio libhoratio was formerly known as DPCRTLMM. libhoratio is provided under a BSD-style license.
475e6bd041e0 — Duncan Ross Palmer develop tip 1 year, 22 days ago
Added gawk to debian/control and rebuild aclocal.m4
78fe77f8fa3e — Duncan Ross Palmer 1 year, 23 days ago
Merged f/201908-sourcehut-build
Grab dlscripts 0.4.1 for fix for non-indep dependencies when running build-deps
43527e5334fe — Duncan Ross Palmer 1 year, 23 days ago
Attempt to install build dependencies
e398d8fa4a14 — Duncan Ross Palmer 1 year, 23 days ago
build-scripts path incorrectly
47ff85d7aa82 — Duncan Ross Palmer 1 year, 23 days ago
Use raw2c from build-scripts (Pure Perl); Drop using C variant
28c6305c5c7b — Duncan Ross Palmer 1 year, 23 days ago
Move to build-scripts-1.0.0 for pure Perl version of raw2c
ff262991431d — Duncan Ross Palmer 1 year, 24 days ago
make and make check
406e9ba2ee69 — Duncan Ross Palmer 1 year, 24 days ago
Added libtool to build.yml
06d7f4b68e81 — Duncan Ross Palmer 1 year, 24 days ago
Added autoconf to build.yml
cdde2dffe187 — Duncan Ross Palmer 1 year, 24 days ago
build with libglib2.0-dev for glibconfig.h
5c44378dbc69 — Duncan Ross Palmer 1 year, 24 days ago
Update build-scripts correctly
17c84de12cdf — Duncan Ross Palmer 1 year, 24 days ago
Run debian/rules
fe201da6e87b — Duncan Ross Palmer 1 year, 24 days ago
First crack at build manifest
1e4df67a0d4a — Duncan Ross Palmer 1 year, 24 days ago
Replace libmysqlclient-dev with default-libmysqlclient-dev
b6ee69d071d8 — Duncan Ross Palmer 1 year, 24 days ago
Create branch for build system on Sourcehut
84d95cbde27d — Duncan Ross Palmer 1 year, 24 days ago
Merge down default, with .hgsub fixes

heads

tip
browse log
libhoratio-2.0.2
browse .tar.gz

clone

read-only
https://hg.sr.ht/~m6kvm/libhoratio
read/write
ssh://hg@hg.sr.ht/~m6kvm/libhoratio
Documentation is provided on the following site: http://2E0EOL.bitbucket.org/libhoratio

What is the purpose of this library?
It is a memory tracking tool.  Although it can't detect memory
over runs on pointer accesses or corruption.  It can be used
to detect failures to release memory (as long as it's allocated
by us) and attempts to release memory which we do not own.
It has an automatic garbage collection feature to free up all
unfreed memory too.  It should be used by the entire program to
be most effective, it can provide statistics on memory left an
such like too.  The best thing about the MM is that it provides
a central place for dynamic memory allocation in a program so
we can trace all activity, an optional log mode is avialable
though a define.  Swapping cannot be implemented as the MM has
no control over pointer-based memory accesses.  This is indeed
why we don't see memory overruns. If the program is going to
be released even though it contains memory bugs, the traps can
be turned off or passed to a handler which will only execute the
serious ones.

Direction: We intend to log statistics to optional back-end systems such
as MongoDB, MySQL and SQLite.  Although this work is ongoing,
it has yet to be merged into mainline.

At some point we will write a dummy library, which will allow
programs which are designed around libhoratio to effectively
remove the library, without being re-written.

Language: Everything here is portable to ANSI C, We try our best to make
this library as portable as possible and appreciate any feedback for /any/
system on which a flaw is seen, whether this is embedded or games console.