JDK-4651570 : step over after popping frames acts like step out
  • Type: Bug
  • Component: core-svc
  • Sub-Component: debugger
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: linux
  • CPU: x86
  • Submitted: 2002-03-12
  • Updated: 2002-05-13
  • Resolved: 2002-05-13
Related Reports
Relates :  
Description

Name: rmT116609			Date: 03/12/2002


FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

FULL OPERATING SYSTEM VERSION :
Mandrake Linux 8.1, Redhat 7.1

ADDITIONAL OPERATING SYSTEMS :
Microsoft Windows 2000 Professional Microsoft NT 4.0

DESCRIPTION OF THE PROBLEM :
We provide an abstraction called "DropToFrame" which is simply a PopFrames request on a frame followed by a StepIn on the thread.

After performing a DropToFrame, StepOver requests behave like StepOut.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
You can view our bug report (which includes a simple test case) here:
http://bugs.eclipse.org/bugs/show_bug.cgi?id=8441

The gist of it is:
1. Debug to a breakpoint
2. Perform a StepOver
3. Pop the current frame from the stack
4. Perform a StepIn
5. A StepOver request will now behave like a StepOut

EXPECTED VERSUS ACTUAL BEHAVIOR :
StepOver should only move one line.

In this case, it exits the current method.

$ jdb
Initializing jdb ...
> stop at HelloWorld:10
Deferring breakpoint HelloWorld:10.
It will be set after the class is loaded.
> run HelloWorld
run  HelloWorld
> 
VM Started: Set deferred breakpoint HelloWorld:10
Hi3

Breakpoint hit: "thread=main", HelloWorld.h(), line=10 bci=0
10              System.out.println("Hi56"); // Breakpoint here

main[1] step
Hi56
> 
Step completed: "thread=main", HelloWorld.h(), line=11 bci=8
11              System.out.println("ouch");

main[1] reenter
> 
Step completed: 
Breakpoint hit: "thread=main", HelloWorld.h(), line=10 bci=0
10              System.out.println("Hi56"); // Breakpoint here

main[1] step
> Hi56
ouch

Step completed: "thread=main", HelloWorld.main(), line=7 bci=20
7       }

main[1] 


This bug can be reproduced always.

---------- BEGIN SOURCE ----------
public class HelloWorld {

	public static void main(String[] args) {
		System.out.println("Hi3");
		HelloWorld h = new HelloWorld();
		h.h();
	}
	
	public void h() {
		System.out.println("Hi56"); // Breakpoint here
		System.out.println("ouch");
	}
}


---------- END SOURCE ----------
(Review ID: 138959) 
======================================================================

Comments
EVALUATION Begin: ###@###.### 2002-05-13 I ran the jdb test with jdk1.4 FCS and got the erroneous behavior shown in the bug report. I ran it again with jdk1.4.1 beta and got the corrected behavior. Closing as cannot reproduce. End: ###@###.### 2002-05-13
13-05-2002