skip to main content
10.1145/3384544.3384560acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicscaConference Proceedingsconference-collections
research-article

Backward Slicing Analysis on Debug Log for Crash Comprehension

Authors Info & Claims
Published:17 April 2020Publication History

ABSTRACT

Debugging costs almost half of the development time of programmers. To understand what happened in the buggy execution, one has to backtrack on the execution history, examine suspicious behaviours one by one and finally locate the key symptom. Accelerating this searching procedure will largely reduce the debugging time.

In this paper, I propose a backward slicing method to reason the cause of the memory crash on the source code execution trace. It iteratively finds the last modification of new tainted seeds in a thin data slicing style and generates the interprocedural data dependency graph. The slicing method can perform inner function alias analysis and a cross procedural argument tainting analysis. The call sites of dynamic function pointers or call sites expanded by macros are also handled in a heuristic way.

I demonstrate the efficacy of method by applying the proto-type system ClueHunter in the vulnerability analysis procedure of 7 open-source projects. The tracing method reduce the amount of code to inspect by 94% for trace-based crash analysis.

References

  1. C. Parnin and A. Orso, "Are automated debugging techniques actually helping programmers?" in Proceedings of the 2011 International Sym- posium on Software Testing and Analysis. ACM, 2011, pp. 199--209.Google ScholarGoogle Scholar
  2. S. Mirghasemi, J. J. Barton, and C. Petitpierre, "Debugging by lastchange," Pro Apache Struts with Ajax, pp. 317--357, 2011.Google ScholarGoogle Scholar
  3. S.Mirghasemi, J. J. Barton, C. Petitpierre, "Querypoint: Moving backwards on wrong values in the buggy execution," in Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ser. ESEC/FSE '11. New York, NY, USA: ACM, 2011, pp. 436--439. [Online].Available: http://doi.acm.org/10.1145/2025113.2025184.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Beszdes, G. Lki, T. Gyimthy, G. Dis, and F. Kovcs, "Using backward dynamic program slicing to isolate influencing statements in gdb," in Gcc Developerstextquoteright Summit, 2007, pp. 21--30.Google ScholarGoogle Scholar
  5. B. Korel and J. Laski, "Dynamic slicing of computer programs," Journal of Systems & Software, vol. 13, no. 3, pp. 187--195, 1990.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. D. Weiser, Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. University of Michigan, 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. H. Agrawal, R. A. Demillo, and E. H. Spafford, "Debugging with dynamic slicing and backtracking," Software Practice & Experience, vol. 23, no. 6, pp. 589--616, 1993.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. X. Zhang, N. Gupta, and R. Gupta, "A study of effectiveness of dynamic slicing in locating real faults," Empirical Software Engineering, vol. 12, no. 2, pp. 143--160, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Sridharan, S. J. Fink, and R. Bodik, "Thin slicing," ACM SIGPLAN Notices, vol. 42, no. 6, pp. 112--122, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. W. E. Wong, R. Gao, Y. Li, A. Rui, and F. Wotawa, "A survey on software fault localization," IEEE Transactions on Software Engineering, pp. 1--1, 2016.Google ScholarGoogle Scholar
  11. rpd Beszedes, T. Gergely, Z. M. Szab, J. Csirik, and T. Gyimothy, "Dy- namic slicing method for maintenance of large c programs," in Software Maintenance and Reengineering, 2001. Fifth European Conference on, 2001, pp. 105--113.Google ScholarGoogle Scholar
  12. A. Zaidman, "Scalability solutions for program comprehension through dynamic analysis," in Conference on Software Maintenance and Reengi- neering (CSMR'06), March 2006, pp. 4 pp.-330.Google ScholarGoogle Scholar
  13. L. Andersen, "Program analysis and specialization for the c program- ming language," Addison-Wesley Series in Computer Science, vol. 2, no. 1, pp. 37--77, 1994.Google ScholarGoogle Scholar
  14. B. Steensgaard, "Points-to analysis in almost linear time," in Proceed- ings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, 1996, pp. 32--41.Google ScholarGoogle Scholar
  15. Q. Zhang, X. Xiao, C. Zhang, H. Yuan, and Z. Su, "Efficient subcubic alias analysis for c," ACM SIGPLAN Notices, vol. 49, no. 10, pp. 829--845, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. X. Wang, H. Ma, and L. Jing, "A dynamic marking method for implicit information flow in dynamic taint analysis," in Proceedings of the 8th International Conference on Security of Information and Networks, ser. SIN '15. New York, NY, USA: ACM, 2015, pp. 275--282. [Online].Available: http://doi.acm.org/10.1145/2799979.2799988Google ScholarGoogle ScholarCross RefCross Ref
  17. B. Boote, "Efficient algorithms for bidirectional debugging," in Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, ser. PLDI '00. New York, NY, USA: ACM, 2000, pp. 299--310. [Online]. Available: http://doi.acm.org/10.1145/349299.349339Google ScholarGoogle Scholar
  18. K. Maryama and M. Terada, "Debugging with reverse watchpoint," in Quality Software, 2003. Proceedings. Third International Conference on. IEEE, 2003, pp. 116--123.Google ScholarGoogle Scholar
  19. B. Lewis and M. Ducasse, "Using events to debug java programs backwards in time," in Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. ACM, 2003, pp. 96--97.Google ScholarGoogle Scholar
  20. C. Hofer, S. Ducasse, O. Nierstrasz, and D.-I. M. Denker, "Implementing a backward-in-time debugger," Master's thesis, University of Bern, 2006.Google ScholarGoogle Scholar
  21. A. J. Ko and B. A. Myers, "Debugging reinvented:asking and answering why and why not questions about program behavior," in Software Engineering, 2008. ICSE'08. ACM/IEEE 30th International Conference on. IEEE, 2008, pp. 301--310.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Engblom, "A review of reverse debugging," in System, Software, SoC and Silicon Debug Conference (S4D), 2012, Sept 2012, pp. 1--6.Google ScholarGoogle Scholar
  23. P. Dovgalyuk, D. Dmitriev, and V. Makarov, "Don't panic: Reverse debugging of kernel drivers," in Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ser. ESEC/FSE 2015. New York, NY, USA: ACM, 2015, pp. 938--941. [Online]. Available: http://doi.acm.org/10.1145/2786805.2803179.Google ScholarGoogle Scholar

Index Terms

  1. Backward Slicing Analysis on Debug Log for Crash Comprehension

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      ICSCA '20: Proceedings of the 2020 9th International Conference on Software and Computer Applications
      February 2020
      382 pages
      ISBN:9781450376655
      DOI:10.1145/3384544

      Copyright © 2020 ACM

      © 2020 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 17 April 2020

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited
    • Article Metrics

      • Downloads (Last 12 months)5
      • Downloads (Last 6 weeks)3

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader