Re: how does purify work?

"Venkatesha Murthy G." <gvmt@bgl.vsnl.net.in>
10 Aug 2000 00:07:43 -0400

          From comp.compilers

Related articles
how does purify work? toddhoff@my-deja.com (2000-08-04)
Re: how does purify work? pfaffben@msu.edu (Ben Pfaff) (2000-08-05)
Re: how does purify work? cfc@world.std.com (Chris F Clark) (2000-08-05)
Re: how does purify work? plakal@cs.wisc.edu (2000-08-05)
Re: how does purify work? Martin.Raabe@WindRiver.com (Martin Raabe) (2000-08-05)
Re: how does purify work? nsrcccw@leonis.nus.edu.sg (2000-08-05)
Re: how does purify work? ralph@inputplus.demon.co.uk (2000-08-10)
Re: how does purify work? gvmt@bgl.vsnl.net.in (Venkatesha Murthy G.) (2000-08-10)
Re: how does purify work? cfc@world.std.com (Chris F Clark) (2000-08-13)
| List of all articles for this month |

From: "Venkatesha Murthy G." <gvmt@bgl.vsnl.net.in>
Newsgroups: comp.compilers
Date: 10 Aug 2000 00:07:43 -0400
Organization: Compilers Central
References: 00-08-027
Keywords: debug

toddhoff@my-deja.com wrote:
> Once upon a time Purify did work for vxworks. It would be a very nice
> tool to have and it seems very odd that there's no product with
> equivalent functionality.


Chaperon is a commercial tool that claims to do a lot of what purify
does. There are other, free, tools that provide a subset of purify
functionality, like leak detection and array bound write
detection. Check http://www.hotfeet.ch/~gemi/LDT/tools_deb.html for
what's available for Linux; they are available in source and some have
been ported to other flavors of Unix also.


Chris F Clark replied:
> There are (at least) 5 ways to implement Purify like tools


If the intent is to catch leaks, there is one more way - provide an
implementation of malloc etc that audits allocations, and fool the
program into using this version of malloc. In a shared library
scenario, preloading the library is all it takes. The library can
report the chunks of memory allocated but not free'd at program exit,
i.e leaks. No recompilation is required, no instrumentation performed.
debauch uses this approach.


ElectricFence is a malloc implementation that catches array bound
writes.


Yours truly has written a malloc implementation (libYaMa) that tracks
allocations and releases, and arranges to detect accesses to beyond
allocated memory and to free'd memory, and free and realloc to invalid
pointers; and leaktrac, a leak tracker that uses an underlying malloc
implementation to get the memory, but adds the book keeping layer on
top. Both are shared libraries that can be preloaded to hide the
"default" malloc implementation.
--
Venkatesha Murthy G.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.