FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
February 01, 1997

Testing Testers

(Page 2 of 4)
Dr. Dobb's Journal February 1997: Instrumentation Techniques

Dr. Dobb's Journal February 1997

Instrumentation Techniques


Instrumentation, in the context of this article, is the process of adding extra code to monitor a program's behavior. Sometimes object code in the executable image itself is changed; at other times, program flow is diverted by patching entry points to external functions.

Source-code instrumentation adds extra instructions at the source-code level. NuMega's BoundsChecker (with technology licensed from ParaSoft) uses this approach and calls it CTI ("compile time instrumentation," a slight misnomer in my view).

Compile-time instrumentation modifies the actual translation process and adds extra object code that never had a source code representation. This is what Borland's C++ compiler does for the benefit of CodeGuard.

Link-time instrumentation uses the properties of the (static) link process to intercept calls to selected library functions and replace them with calls to equivalent, but instrumented versions of them. CodeGuard uses this technique.

Object-code instrumentation takes a ready-to-run executable module and inserts additional code into it, based on an object-code-level analysis of the program flow. Pure Software's Purify is the prime example of this instrumentation technique.

Run-time instrumentation, finally, defers instrumentation to the time when the executable program image is loaded into memory, and only then modifies entry points or uses notifications (including processor exceptions) to get control at critical points. BoundsChecker uses this mode of instrumentation.

-- R.v.d.W.


Copyright © 1997, Dr. Dobb's Journal

Previous Page | 1 | 2 | 3 | 4 Next Page
TOP 5 ARTICLES
No Top Articles.
DR. DOBB'S CAREER CENTER
Ready to take that job and shove it? open | close
Search jobs on Dr. Dobb's TechCareers
Function:

Keyword(s):

State:  
  • Post Your Resume
  • Employers Area
  • News & Features
  • Blogs & Forums
  • Career Resources

    Browse By:
    Location | Employer | City
  • Most Recent Posts:
    MEDIA CENTER  more
    NetSeminar
    Modernize your Development by Moving Build and Code Quality Upstream
    Moderated by Jon Erickson, Editor-in-Chief of Dr. Dobb's, this interactive panel discussion brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.

    The reality of today's development environment - geographically distributed teams, the use of Agile development practices, increasing application complexity, etc. - is straining the viability of the traditional coding, build and release process. To stay ahead of the curve, development teams are modernizing their approach to dealing with these issues, and as a result are achieving new levels of development productivity. Register for the webcast.
    Date: Wednesday, July 15, 2009
    Time: 11 am PT/2 pm ET
    Modernize your Development by Moving Build and Code Quality Upstream
    Moderated by Jon Erickson, Editor-in-Chief of Dr. Dobb's, this interactive panel discussion brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.

    The reality of today's development environment - geographically distributed teams, the use of Agile development practices, increasing application complexity, etc. - is straining the viability of the traditional coding, build and release process. To stay ahead of the curve, development teams are modernizing their approach to dealing with these issues, and as a result are achieving new levels of development productivity. Register for the webcast.
    Date: Wednesday, July 15, 2009
    Time: 11 am PT/2 pm ET
                                   
    INFO-LINK

    Resource Links: