TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
"Lipscomb, Kevin" <[log in to unmask]>
Mon, 1 Mar 1999 17:47:23 -0800
Steven Deller <[log in to unmask]>
text/plain; charset="us-ascii"
Steven Deller <[log in to unmask]>
text/plain (48 lines)
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
Rational Purify.

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
referencing errors.

Steven Deller
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
> the
> 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: