Rational has a tool, Rational Purify Ada, that catches precisely the sort of
errors you are worried about, even from non-Ada 3rd party libraries. This
tool was used on our own software package that was "sabotaged" by a 3rd party
library that had two errors -- one was a memory leak (continual growth
slowing the process and eventually killing it) and the other was a case of
using access memory after it was returned (causing those nasty
once-in-a-long-while crashes). Both were diagnosed very quickly with
The biggest point of this is that unless you have a very limited application,
the source you write is not the only place where errors can come from.
Rather than limit yourself to the use of reference-counting objects which
can make for awkward constructions in the code you write and only protects a
portion of the application executable, I'd strongly recommend use of a tool
that can test and verify your entire executable code for all sorts of memory
Rational Software Corporation
410 757 6924 [log in to unmask]
P.S. Sorry to Team-Ada for the blatant commercial -- Purify is not my main
interest in Rational, but I have been quite impressed with its capabilities
for exactly this situation -- high-availability applications.
On Monday, March 01, 1999 8:06 AM, Lipscomb, Kevin
[SMTP:[log in to unmask]] wrote:
> My development team is responsible for writing and maintaining applications
> for which high-availability is a requirement. Once launched, our programs
> should run continuously for days or weeks.
> As one might imagine, memory leaks are a great concern to us. Does anyone
> know of a collection of software components in Ada that provide
> reference-counted objects? How about bindings, or binding wrappers, that
> provide reference-counting?
> In the book, _Design Patterns_, reference-counted objects are covered in
> section on the pattern Proxy. Unfortunately, I have not read the entire
> book yet (I will, I promise.) Can anyone recommend other patterns that are
> particularly applicable in the domain of high-availability software
> applications -- design patterns that we'd really be foolish to be without?
> -- Kevin Andrew Lipscomb
> -- CV, PGP keys, etc: http://users.exis.net/~klips