Here is a first short HowTo on how to locate memory holes in Singular: 1.) Make sure you build with -DOM_TRACK=5 (e.g. use Singulart, Singularg). 2.) Use system("mtrack", [, []]) to get a report about unused memory, where * 0 <= level <= 5 determines how many stackframes per not freed address are printed (default is 5 -- 0 only prints a summary) * is name of file where report should be output to (defaults to stdout). 3.) Running 'regress.cmd -tt file.tst' creates the file 'file.mtrack.unused' with report of not freed addresses ( has same meaning as above). 4.) Within the C/C++ sources, Use 'omMarkAsStatic(addr)' to mark an address as static, i.e. as an address which is ok if it is not freed. Addresses marked this way are not reported by system("mtrack",...) (resp. regress.cmd -tt). 5.) For some more details, see also extra.cc: system("mtrack", ...)