Lightweight Automatic Error Detection by Monitoring Collar Variables

  • João Santos
  • Rui Abreu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7641)


Although proven to be an effective way for detecting errors, generic program invariants (also known as fault screeners) entail a considerable runtime overhead, rendering them not useful in practice. This paper studies the impact of using simple variable patterns to detect the so-called system’s collar variables to reduce the number of variables to be monitored (instrumented). Two different patterns were investigated to determine which variables to monitor. The first pattern finds variables whose value increase or decrease at regular intervals and deems them not important to monitor. The other pattern verifies the range of a variable per (successful) execution. If the range is constant across executions, then the variable is not monitored. Experiments were conducted on three different real-world applications to evaluate the reduction achieved on the number of variables monitored and determine the quality of the error detection. Results show a reduction of 52.04% on average in the number of monitored variables, while still maintaining a good detection rate with only 3.21% of executions detecting non-existing errors (false positives) and 5.26% not detecting an existing error (false negatives).


Error detection program invariants automatic oracles dynamic execution 


  1. 1.
    Patterson, D., Brown, A., Broadwell, P., Candea, G., Chen, M., Cutler, J., Enriquez, P., Fox, A., Kiciman, E., Merzbacher, M., Oppenheimer, D., Sastry, N., Tetzlaff, W., Traupman, J., Treuhaft, N.: Recovery-oriented computing (ROC): Motivation, definition, techniques, and case studies. Computer Science Technical Report UCB//CSD-02-1175, 1–16 (2002)Google Scholar
  2. 2.
    Racunas, P., Constantinides, K., Manne, S., Mukherjee, S.S.: Perturbation-based Fault Screening. In: Proceedings of HPCA 2007, pp. 169–180 (2007)Google Scholar
  3. 3.
    Hangal, S., Lam, M.S.: Tracking down software bugs using automatic anomaly detection. In: Proceedings of ICSE 2002, pp. 291–301 (2002)Google Scholar
  4. 4.
    Abreu, R., González, A., Zoeteweij, P., van Gemund, A.J.: Automatic software fault localization using generic program invariants. In: Proceedings of SAC 2008, pp. 712–717 (2008)Google Scholar
  5. 5.
    Menzies, T., Owen, D., Richardson, J.: The strangest thing about software. Computer 40(1), 54–60 (2007)CrossRefGoogle Scholar
  6. 6.
    Gay, G., Menzies, T., Davies, M., Gundy-Burlet, K.: Automatically finding the control variables for complex system behavior. Automated Software Engineering 17(4), 439–468 (2010)CrossRefGoogle Scholar
  7. 7.
    Ernst, M.D., Cockrell, J., Griswoldt, W.G., Notkin, D.: Dynamically Discovering Likely Program to Support Program Evolution Invariants. In: Proceedings of ICSE 1999, pp. 213–224 (1999)Google Scholar
  8. 8.
    Dimitrov, M., Zhou, H.: Anomaly-Based Bug Prediction, Isolation, and Validation: An Automated Approach for Software Debugging. In: Proceedings of ASPLOS 2009, vol. 44, pp. 61–72. ACM (2009)Google Scholar
  9. 9.
    Abreu, R., González, A., Zoeteweij, P., van Gemund, A.J.: Using Fault Screeners for Software Error Detection. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds.) ENASE 2008/2009. CCIS, vol. 69, pp. 60–74. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  10. 10.
    Ernst, M.D., Perkins, J.H., Guo, P.J., McCamant, S., Pacheco, C., Tschantz, M.S., Xiao, C.: The Daikon system for dynamic detection of likely invariants. Science of Computer Programming 69(1-3), 35–45 (2007)MathSciNetzbMATHCrossRefGoogle Scholar
  11. 11.
    Pytlik, B., Renieris, M., Krishnamurthi, S., Reiss, S.P.: Automated Fault Localization Using Potential Invariants. In: Proceedings of AADEBUG 2003, pp. 273–276 (2003)Google Scholar
  12. 12.
    Hangal, S., Chandra, N., Narayanan, S., Chakravorty, S.: IODINE: A Tool to Automatically Infer Dynamic Invariants for Hardware Designs. In: Proceedings of DAC 2005, pp. 775–778 (2005)Google Scholar
  13. 13.
    Janssen, T., Abreu, R., van Gemund, A.J.: Zoltar: A Toolset for Automatic Fault Localization. In: Proceedings of ASE 2009, pp. 662–664 (2009)Google Scholar
  14. 14.
    Sagdeo, P., Athavale, V., Kowshik, S., Vasudevan, S.: PRECIS: Inferring invariants using program path guided clustering. In: Proceedings of ASE 2011, pp. 532–535 (2011)Google Scholar
  15. 15.
    Sahoo, S.K., Li, M.L., Ramachandran, P., Adve, S.V., Adve, V.S., Zhou, Y.: Using likely program invariants to detect hardware errors. In: Proceedings of DSN 2008, pp. 70–79 (June 2008)Google Scholar
  16. 16.
    Jalali, O., Menzies, T., Feather, M.: Optimizing Requirements Decisions with KEYS. In: Proceedings of PROMISE 2008 (ICSE), pp. 1–8 (2008)Google Scholar
  17. 17.
    Gay, G., Menzies, T., Jalali, O., Feather, M., Kiper, J.: Real-time Optimization of Requirements Models. Jet Propulsion, 1–33 (2008)Google Scholar
  18. 18.
    Williams, R., Gomes, C.P., Selman, B.: Backdoors To Typical Case Complexity. In: Proceedings of IJCAI 2003 (2003)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2012

Authors and Affiliations

  • João Santos
    • 1
  • Rui Abreu
    • 1
  1. 1.Department of Informatics Engineering, Faculty of EngineeringUniversity of PortoPortugal

Personalised recommendations