skip to main content
10.1145/3183440.3183470acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
demonstration

VISUFLOW: a debugging environment for static analyses

Published:27 May 2018Publication History

ABSTRACT

Code developers in industry frequently use static analysis tools to detect and fix software defects in their code. But what about defects in the static analyses themselves? While debugging application code is a difficult, time-consuming task, debugging a static analysis is even harder. We have surveyed 115 static analysis writers to determine what makes static analysis difficult to debug, and to identify which debugging features would be desirable for static analysis. Based on this information, we have created Visijflow, a debugging environment for static data-flow analysis. Visuflow is built as an Eclipse plugin, and supports analyses written on top of the program analysis framework Soot. The different components in Visuflow provide analysis writers with visualizations of the internal computations of the analysis, and actionable debugging features to support debugging static analyses. A video demo of Visuflow is available online: https://www.youtube.com/watch?v=BkEfBDwiuH4

References

  1. 2017. Apache License 2.0. https://www.apache.org/licenses/LICENSE-2.0. (2017).Google ScholarGoogle Scholar
  2. 2017. GraphStream. http://graphstream-project.org/. (2017).Google ScholarGoogle Scholar
  3. Eric Bodden. 2012. Inter-procedural data-flow analysis with IFDS/IDE and Soot. In International Workshop on State of the Art in Java Program Analysis (SOAP). 3--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cristiano Calcagno and Dino Distefano. 2011. Infer: An Automatic Program Verifier for Memory Safety of C Programs. In NASA Formal Methods (NFM) (Lecture Notes in Computer Science), Vol. 6617. 459--465. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Tom Deering, Suresh Kothari, Jeremias Sauceda, and Jon Mathews. 2014. Atlas: A New Way to Explore Software, Build Analysis Tools (ICSE Companion 2014). ACM, New York, NY, USA, 588--591. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Yit Phang Khoo, Jeffrey S. Foster, Michael Hicks, and Vibha Sazawal. 2008. Path Projection for User-centered Static Analysis Tools (PASTE '08). ACM, New York, NY, USA, 57--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Andrew Jensen Ko and Brad A. Myers. 2004. Designing the whyline: a debugging interface for asking questions about program behavior. In CHI 2004, Vienna, Austria, April 24 -- 29, 2004. 151--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bil Lewis. 2003. Debugging Backwards in Time. CoRR cs.SE/0310016 (2003). http://arxiv.org/abs/cs.SE/0310016Google ScholarGoogle Scholar
  9. Lisa Nguyen Quang Do, Karim Ali, Benjamin Livshits, Eric Bodden, Justin Smith, and Emerson Murphy-Hill. 2017. Just-in-time Static Analysis (ISSTA 2017). ACM, New York, NY, USA, 307--317. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Lisa Nguyen Quang Do, Stefan Krüger, Patrick Hill, Karim Ali, and Eric Bodden. 2017. VisuFlow. https://blogs.uni-paderborn.de/sse/tools/visuflow-debugging-static-analysis/. (2017).Google ScholarGoogle Scholar
  11. Lisa Nguyen Quang Do, Stefan Krüger, Patrick Hill, Karim Ali, and Eric Bodden. 2018. Debugging Static Analysis. Technical Report. arXiv:cs.SE/1801.04894Google ScholarGoogle Scholar
  12. Frederick F Reichheld. 2003. The one number you need to grow. Harvard Business Review 81, 12 (2003), 46--55.Google ScholarGoogle Scholar
  13. Haihao Shen, Jianhong Fang, and Jianjun Zhao. 2011. Efindbugs: Effective error ranking for findbugs. In International Conference on Software Testing, Verification and Validation (ICST). 299--308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Raja Vallée-Rai, Etienne Gagnon, Laurie J. Hendren, Patrick Lam, Patrice Pominville, and Vijay Sundaresan. 2000. Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?. In CC. 18--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Andreas Zeller and Ralf Hildebrandt. 2002. Simplifying and Isolating Failure-Inducing Input. IEEE Trans. Software Eng. 28, 2 (2002), 183--200. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. VISUFLOW: a debugging environment for static analyses

        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 Conferences
          ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings
          May 2018
          231 pages
          ISBN:9781450356633
          DOI:10.1145/3183440
          • Conference Chair:
          • Michel Chaudron,
          • General Chair:
          • Ivica Crnkovic,
          • Program Chairs:
          • Marsha Chechik,
          • Mark Harman

          Copyright © 2018 Owner/Author

          Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 27 May 2018

          Check for updates

          Qualifiers

          • demonstration

          Acceptance Rates

          Overall Acceptance Rate276of1,856submissions,15%

          Upcoming Conference

          ICSE 2025

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader