Nothing Special   »   [go: up one dir, main page]

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 2018 Publication 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.
[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.
[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.
[4]
Cook, J. J., Reverse Execution of Java Bytecode, The Computer Journal, vol. 45, no. 6, 608--619, 2002.
[5]
Biswas, Bitan, et al. Reverse execution of programs, ACM SIGPLAN Notice, vol. 34, Issue 4, 610--69, 1999.
[6]
Cadar, Cristian and Engler, Dawson, Execution Generated Test Cases: How to Make Systems Code Crash Itself, Proc.SPIN'05, 2005.
[7]
Akgul, T. and Mooney III, V. J., Instruction-level Reverse Execution for Debugging, Technical Report GIT-CC-02-49, 2002.
[8]
Cadar, C. and Sen K., Symbolic Execution for Software Testing: Three Decades Later, Comm. ACM, vol. 56, no. 2, 82--90, 2013.
[9]
Godefroid, P. et al., DART: Directed Automated Random Testing, Proc. PLDI'05, 213--223, 2005.
[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.
[11]
Roychoudhury, A. and Chandra, S., Formula-Based Software Debugging, Comm. ACM, vol. 59, no. 7, pp. 68--77, 2016.
[12]
Lindholm, T. et al., The Java Virtual Machine Specification Java SE 8 Edition, Oracle America, 2015.

Cited By

View all
  • (2018)A Framework for Debugging Java Programs in a Bytecode2018 International Conference on Computing, Electronics & Communications Engineering (iCCECE)10.1109/iCCECOME.2018.8658589(317-322)Online publication date: Aug-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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].

In-Cooperation

  • University of Canberra: University of Canberra
  • University of Technology Sydney

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 January 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java bytecode
  2. backward simulation
  3. bug detection
  4. reverse execution
  5. symbolic analysis

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ICCMS 2018

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2018)A Framework for Debugging Java Programs in a Bytecode2018 International Conference on Computing, Electronics & Communications Engineering (iCCECE)10.1109/iCCECOME.2018.8658589(317-322)Online publication date: Aug-2018

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media