Reverse execution of Java']Java bytecode

被引:11
作者
Cook, JJ [1 ]
机构
[1] Univ Edinburgh, Lab Fdn Comp Sci, Edinburgh EH9 3JZ, Midlothian, Scotland
关键词
D O I
10.1093/comjnl/45.6.608
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
We demonstrate a model, including operational semantics, for the reverse execution of stack-based code. We discuss our modification of the Kaffe implementation of the Java Virtual Machine, supporting a debugger capable of running Java bytecode backwards. We achieve reverse execution by logging the state lost during each operation or by directly reversing instructions. Our debugger has facilities for stepping, stepping over methods and running to breakpoints, in both directions. Multi-threading is supported. It is also possible to step through the bytecode when the Java source code is not available. The debugger has both a command line user interface and a graphical user interface with facilities for editing code and running the Java compiler.
引用
收藏
页码:608 / 619
页数:12
相关论文
共 9 条
[1]   AN EXECUTION-BACKTRACKING APPROACH TO DEBUGGING [J].
AGRAWAL, H ;
DEMILLO, RA ;
SPAFFORD, EH .
IEEE SOFTWARE, 1991, 8 (03) :21-26
[2]  
[Anonymous], P ACM SIGM S PAR DIS
[3]   Reverse execution of programs [J].
Biswas, B ;
Mall, R .
ACM SIGPLAN NOTICES, 1999, 34 (04) :61-69
[4]   A type system for object initialization in the Java']Java bytecode language [J].
Freund, SN ;
Mitchell, JC .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1999, 21 (06) :1196-1250
[5]  
JOHNSON JD, 1983, ACM SIGPLAN NOTICES, V18, P149
[6]   Techniques for obtaining high performance in Java']Java programs [J].
Kazi, IH ;
Chen, HH ;
Stanley, B ;
Lilja, DJ .
ACM COMPUTING SURVEYS, 2000, 32 (03) :213-240
[7]  
Lindholm Tim., 1999, JAVA VIRTUAL MACHINE, V2nd
[8]  
STATA R, 1998, P 25 ACM S PRINC PRO, P149
[9]  
Tolmach A., 1995, Journal of Functional Programming, V5, P155, DOI 10.1017/S0956796800001313