skip to main content
10.1145/3177457.3177480acmotherconferencesArticle/Chapter ViewAbstractPublication PagesiccmsConference Proceedingsconference-collections
research-article

Symbolic backward simulation of Java bytecode program

Published:08 January 2018Publication History

ABSTRACT

We present a new method, symbolic backward simulation, for detecting bugs in Java bytecode programs. In order to find bugs comprehensively, the method determines conditions on the input side by tracing back from the tail of the program while performing reverse execution for each bytecode. Generally, reverse execution is difficult, especially for instructions of two-input-one-output operations and branches. Our method solves the problem symbolically with essentially fewer simulation cases than numerical testing and forward symbolic analysis. We also show simulation results which detected a branch condition error and a real number processing error.

References

  1. Hiranaka Y. and Taketa T., DESIGNING, BACKWARD RANGE SIMULATOR FOR SYSTEM DIAGNOSES, Proc. XX IMEKO World Congress, 2012.Google ScholarGoogle Scholar
  2. Hiranaka, Y., Sakaki, H., Ito, K., Taketa, T., and Miura S., Numerical Backward Simulation Model with Case Branching Capability, Proc. 4th International Conference on Simulation and Modeling Methodologies Technologies and Applications (SIMULTECH 2014), pp. 225--230, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hiranaka Y., Inafune T., Miura S., Taketa T., Backward range simulation of Java bytecodes and reduction of its processing time, Proc. 8th International Conference on Computer Modeling and Simulation (ICCMS2017), 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cook, J. J., Reverse Execution of Java Bytecode, The Computer Journal, vol. 45, no. 6, 608--619, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  5. Biswas, Bitan, et al. Reverse execution of programs, ACM SIGPLAN Notice, vol. 34, Issue 4, 610--69, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cadar, Cristian and Engler, Dawson, Execution Generated Test Cases: How to Make Systems Code Crash Itself, Proc.SPIN'05, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Akgul, T. and Mooney III, V. J., Instruction-level Reverse Execution for Debugging, Technical Report GIT-CC-02-49, 2002.Google ScholarGoogle Scholar
  8. Cadar, C. and Sen K., Symbolic Execution for Software Testing: Three Decades Later, Comm. ACM, vol. 56, no. 2, 82--90, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Godefroid, P. et al., DART: Directed Automated Random Testing, Proc. PLDI'05, 213--223, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Avgerinos, T., Robert., A., Cha., S.K., Brumley, D., Enhancing Symbolic Execution with Veritesting, Comm. ACM, vol. 59, no. 6, pp. 93--100, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Roychoudhury, A. and Chandra, S., Formula-Based Software Debugging, Comm. ACM, vol. 59, no. 7, pp. 68--77, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Lindholm, T. et al., The Java Virtual Machine Specification Java SE 8 Edition, Oracle America, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Symbolic backward simulation of Java bytecode program

    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
      ICCMS '18: Proceedings of the 10th International Conference on Computer Modeling and Simulation
      January 2018
      310 pages
      ISBN:9781450363396
      DOI:10.1145/3177457

      Copyright © 2018 ACM

      Permission to make digital or hard copies of all or part 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 components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 8 January 2018

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader