TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

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

Print Reply
Sender: "Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
X-To: "Lipscomb, Kevin" <[log in to unmask]>
Date: Mon, 1 Mar 1999 17:47:23 -0800
Reply-To: Steven Deller <[log in to unmask]>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"
From: Steven Deller <[log in to unmask]>
Parts/Attachments: text/plain (48 lines)
Kevin,
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.

Regards,
Steve
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: http://users.exis.net/~klips

ATOM RSS1 RSS2