comp.lang.ada
 help / color / mirror / Atom feed
From: heatwole@erols.com (Kevin D. Heatwole)
Subject: Re: To Initialise or not
Date: 1996/05/04
Date: 1996-05-04T00:00:00+00:00	[thread overview]
Message-ID: <heatwole-0405961855090001@as29s17.erols.com> (raw)
In-Reply-To: DqsMC6.IwK@world.std.com


In article <DqsMC6.IwK@world.std.com>, bobduff@world.std.com (Robert A
Duff) wrote:
> It *is* possible, however, to detect all uninitialized variables at run
> time, and detect *some* of them at compile time.

I just thought I'd point out that OC System's PowerAda product includes
a tool to detect all uninitialized variables at runtime.  We call the
tool "afun" (Ada Find UNinitialized variables) which is based upon our
Aprobe debugging/monitoring technology (which is unique amongst all the 
compiler vendors).

Afun works at the machine level by "patching" all loads/stores to memory.
As the program executes, it keeps track of which locations have been
stored to and logs a call traceback whenever the program attempts to load
from an uninitialized location.  This technique can slow down a program
a bit, but it can be very valuable at ferreting out a use of an uninitialized
variable (in my experience, these bugs can be the hardest to weed out of
an application since the use of an uninitialized variable may not show up
during testing but wait until some inopportune time operationally).

Anyway, afun isn't perfect since it can identify locations that were 
initialized as being uninitialized (e.g., the memory location is shared
with another process and the other process initialized the location), and
it can take some expertize to use.  However, it is generally worth the
effort if you want to minimize the defects in your applications.

I just thought I'd point this out, since some problems (like uninitialized
variables) are best solved by good tools (even if the programming language
generally helps to avoid the problem).

Kevin Heatwole
OC Systems, Inc.




  reply	other threads:[~1996-05-04  0:00 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-04-29  0:00 To Initialise or not Steve O'Neill
1996-04-29  0:00 ` Ken Garlington
1996-04-29  0:00   ` Robert Dewar
1996-04-30  0:00     ` Ken Garlington
1996-04-30  0:00   ` Robert A Duff
1996-04-30  0:00     ` Robert A Duff
1996-04-30  0:00     ` Ken Garlington
1996-04-30  0:00       ` Robert A Duff
1996-05-01  0:00         ` Keith Thompson
1996-05-01  0:00           ` Theodore E. Dennison
1996-05-01  0:00             ` Robert A Duff
1996-05-02  0:00               ` Theodore E. Dennison
1996-05-02  0:00                 ` Chris Warack <sys mgr>
1996-05-02  0:00                   ` Robert A Duff
1996-05-06  0:00                   ` Ken Garlington
1996-05-02  0:00                 ` Robert A Duff
1996-05-02  0:00               ` Michael F Brenner
1996-05-02  0:00                 ` Robert A Duff
1996-05-04  0:00                   ` Kevin D. Heatwole [this message]
1996-05-06  0:00               ` Ken Garlington
1996-05-07  0:00                 ` Robert A Duff
1996-05-08  0:00                   ` Ken Garlington
1996-05-08  0:00                     ` Robert A Duff
1996-05-09  0:00                       ` Ken Garlington
1996-05-09  0:00                         ` Robert A Duff
1996-05-01  0:00             ` Dale Stanbrough
1996-05-02  0:00             ` Robert Dewar
1996-05-02  0:00               ` Robert A Duff
1996-05-02  0:00               ` Theodore E. Dennison
1996-05-01  0:00           ` Robert A Duff
1996-05-02  0:00             ` Keith Thompson
1996-05-03  0:00               ` Robert A Duff
1996-05-06  0:00           ` Ken Garlington
1996-05-06  0:00         ` Ken Garlington
1996-05-07  0:00           ` Robert A Duff
1996-05-08  0:00             ` Ken Garlington
1996-05-09  0:00               ` Robert A Duff
1996-05-10  0:00                 ` Robert A Duff
1996-05-10  0:00                   ` Ken Garlington
1996-05-10  0:00                     ` Robert A Duff
1996-05-10  0:00                       ` Ken Garlington
1996-05-11  0:00                         ` David Kristola
1996-05-11  0:00                           ` Robert A Duff
1996-05-11  0:00                         ` Robert A Duff
1996-05-13  0:00                 ` Ken Garlington
1996-05-13  0:00                   ` Robert A Duff
1996-05-13  0:00                     ` Ken Garlington
1996-05-13  0:00                   ` Ken Garlington
1996-05-13  0:00                     ` Robert A Duff
1996-05-13  0:00                       ` Ken Garlington
1996-05-01  0:00     ` Patrick Richard Wibbeler
1996-05-06  0:00       ` Ken Garlington
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox