Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Efficient and flexible architectural support for dynamic monitoring
Zhou Y., Zhou P., Qin F., Liu W., Torrellas J. ACM Transactions on Architecture and Code Optimization2 (1):3-33,2005.Type:Article
Date Reviewed: Jul 29 2005

In its 2002 report [1], the National Institute of Standards and Technology (NIST) estimated that software errors cost the US economy an estimated $59.5 billion annually. Over half of these costs are borne by the end user, while the rest are borne by software developers and vendors. As observed in the report, software is error-ridden, in part, because of its growing complexity. Therefore, software testing and debugging is of primary concern. While better programming languages are being developed that offer fewer possibilities of introducing common bugs, it is still likely that software developed under limited timelines, and by groups of programmers, possibly separated by several time zones, will have numerous oversights. Therefore, in my opinion, efficient and effective code monitoring and debugging support is as important as (if not more important than) developing new programming languages and methodologies.

Dynamic code monitoring is a challenging task. Many different practices and software programs are in use to help programmers determine the existence and location of common bugs, like memory leaks, buffer overflow, accessing freed memory, value-invariant violations, and overwritten stacks. Depending on the programming style and the method selected, the cost and the resulting efficiency of trapping the bugs can be overwhelming. Therefore, an efficient and more effective debugging scheme is highly desirable.

The authors of this paper present promising architectural support for dynamic monitoring. The “Intelligent Watcher” (iWatcher) is a location-controlled monitoring (LCM) scheme in which access to certain memory locations is monitored. iWatcher also can leverage thread-level speculation (TLS), to reduce monitoring overhead and to roll back and reexecute bad code. The iWatcher scheme relies on hardware support to define LCM registers. It provides simple system calls, which can also be inserted automatically, to turn monitoring on and off for certain memory locations. Accesses to these locations trigger a monitoring function defined in the system call. iWatcher, however, leaves the correctness of the triggered function to the programmer. If the monitoring function is successfully completed, the program continues normally. Upon failure, different actions can be defined.

The simplicity of implementing iWatcher, combined with its flexibility, makes it a very powerful monitoring approach. Its efficiency and low overhead are also much better when compared to its peers. However, iWatcher is already facing competing debugging techniques that are more flexible with regard to hardware support [2].

The main contribution of this paper is the presentation of a powerful methodology for monitoring. Overall, it is clear in its presentation, though certain taxonomy-related repeats could have been avoided. The validation methodology is careful and thorough. The authors put a lot of effort into comparing this approach with other available standard software programs. However, the main programming languages of concern seem to be C and C++. It will be interesting to see how effective the approach will be for code that is written in Java and C#.

Reviewer:  Irtaza Barlas Review #: CR131599
1) National Institute of Standards and Technology (NIST). The economic impacts of inadequate infrastructure for software testing, http://www.nist.gov/director/prog-ofc/report02-3.pdf, 2002. Accessed 07/27/05.
2) Corliss, M.L.; Lewis, E.C.; Roth, A. Low-overhead interactive debugging via dynamic instrumentation with DISE. In Proceedings of the 11th International Symposium on High-Performance Computer Architecture IEEE, 2005, 303–314.
Bookmark and Share
  Editor Recommended
Featured Reviewer
 
 
Reliability, Testing, And Fault-Tolerance (B.8.1 )
 
 
Debugging Aids (D.2.5 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Reliability, Testing, And Fault-Tolerance": Date
Scheduling tests for VLSI systems under power constraints
Chou R., Saluja K. (ed), Agrawal V. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 5(2): 175-185, 1997. Type: Article
Feb 1 1998
Introduction to IDDQ testing
Chakravarty S., Thadikaran P., Kluwer Academic Publishers, Norwell, MA, 1997. Type: Book (9780792399452)
Feb 1 1998
Fault-tolerant self-organizing map implemented by wafer-scale integration
Yasunaga M., Hachiya I., Moki K., Kim J. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 6(2): 257-265, 1998. Type: Article
Oct 1 1998
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy