This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
The JPDA has a notion of code index which is different from line number and is more fine grained. Making use of it the debugger should support a notion of "Step over statement". This is because sometimes there are multiple statements per line of code. This may require some parsing of the source code on the current line to determine the code index of each of the statements on a single line.
Yes, another possible enhancement would be expression debugging.
It turns out the Location class of JDPA only has the line numbers and code index. The code index does nto necessarily map to statements/expressions. This is even more so when the code is optimized. Therefore it may not be possible to support Step over statement/expression unless JPDA introduces that support in the location class. Anyhow, it should be possible to support "Step over code index". The user may not see any difference though, as the highlight in the editor will stay on the same line if the next code index is on the same line. If the editor has an ability to show bytecode view also (which I have seen in some Java IDE's as well as older C/C++ debuggers/IDEs) this could be useful. The code optimization as well as JIT and Hotspot always makes some of this harder.
The new kind of step is under development, we need an API review, before it can be put into trunk. See issue #93842. The implementation of so-called expression-step is on AST branch in debuggercore and debuggerjpda modules.
The expression-stepping implementation is in trunk now. The code from AST branch was merged into trunk: Checking in debuggercore/api/apichanges.xml; /shared/data/ccvs/repository/debuggercore/api/apichanges.xml,v <-- apichanges.xml new revision: 1.7; previous revision: 1.6 done Checking in debuggercore/api/manifest.mf; /shared/data/ccvs/repository/debuggercore/api/manifest.mf,v <-- manifest.mf new revision: 1.14; previous revision: 1.13 done Checking in debuggercore/api/src/org/netbeans/api/debugger/ActionsManager.java; /shared/data/ccvs/repository/debuggercore/api/src/org/netbeans/api/debugger/ActionsManager.java,v <-- ActionsManager.java new revision: 1.22; previous revision: 1.21 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/Bundle.properties; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/Bundle.properties,v <-- Bundle.properties new revision: 1.15; previous revision: 1.14 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/CurrentExpression.xml; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/CurrentExpression.xml,v <-- CurrentExpression.xml new revision: 1.2; previous revision: 1.1 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/CurrentExpressionLine.xml; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/CurrentExpressionLine.xml,v <-- CurrentExpressionLine.xml new revision: 1.2; previous revision: 1.1 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/mf-layer.xml; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/mf-layer.xml,v <-- mf-layer.xml new revision: 1.77; previous revision: 1.76 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/actions/StepOverOperation.gif; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/actions/StepOverOperation.gif,v <-- StepOverOperation.gif new revision: 1.2; previous revision: 1.1 done Checking in debuggercore/src/org/netbeans/modules/debugger/resources/actions/StepOverOperation24.gif; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/resources/actions/StepOverOperation24.gif,v <-- StepOverOperation24.gif new revision: 1.2; previous revision: 1.1 done Checking in debuggercore/src/org/netbeans/modules/debugger/ui/actions/Bundle.properties; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/ui/actions/Bundle.properties,v <-- Bundle.properties new revision: 1.13; previous revision: 1.12 done Checking in debuggercore/src/org/netbeans/modules/debugger/ui/actions/DebuggerAction.java; /shared/data/ccvs/repository/debuggercore/src/org/netbeans/modules/debugger/ui/actions/DebuggerAction.java,v <-- DebuggerAction.java new revision: 1.14; previous revision: 1.13 done Checking in debuggerjpda/arch.xml; /shared/data/ccvs/repository/debuggerjpda/arch.xml,v <-- arch.xml new revision: 1.9; previous revision: 1.8 done Checking in debuggerjpda/ant/nbproject/project.properties; /shared/data/ccvs/repository/debuggerjpda/ant/nbproject/project.properties,v <-- project.properties new revision: 1.10; previous revision: 1.9 done Checking in debuggerjpda/ant/nbproject/project.xml; /shared/data/ccvs/repository/debuggerjpda/ant/nbproject/project.xml,v <-- project.xml new revision: 1.22; previous revision: 1.21 done Checking in debuggerjpda/api/apichanges.xml; /shared/data/ccvs/repository/debuggerjpda/api/apichanges.xml,v <-- apichanges.xml new revision: 1.18; previous revision: 1.17 done Checking in debuggerjpda/api/manifest.mf; /shared/data/ccvs/repository/debuggerjpda/api/manifest.mf,v <-- manifest.mf new revision: 1.20; previous revision: 1.19 done Checking in debuggerjpda/api/src/org/netbeans/api/debugger/jpda/CallStackFrame.java; /shared/data/ccvs/repository/debuggerjpda/api/src/org/netbeans/api/debugger/jpda/CallStackFrame.java,v <-- CallStackFrame.java new revision: 1.10; previous revision: 1.9 done Checking in debuggerjpda/api/src/org/netbeans/api/debugger/jpda/JPDAStep.java; /shared/data/ccvs/repository/debuggerjpda/api/src/org/netbeans/api/debugger/jpda/JPDAStep.java,v <-- JPDAStep.java new revision: 1.4; previous revision: 1.3 done Checking in debuggerjpda/api/src/org/netbeans/api/debugger/jpda/JPDAThread.java; /shared/data/ccvs/repository/debuggerjpda/api/src/org/netbeans/api/debugger/jpda/JPDAThread.java,v <-- JPDAThread.java new revision: 1.11; previous revision: 1.10 done Checking in debuggerjpda/api/src/org/netbeans/spi/debugger/jpda/EditorContext.java; /shared/data/ccvs/repository/debuggerjpda/api/src/org/netbeans/spi/debugger/jpda/EditorContext.java,v <-- EditorContext.java new revision: 1.10; previous revision: 1.9 done Checking in debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/AST2Bytecode.java; /shared/data/ccvs/repository/debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/AST2Bytecode.java,v <-- AST2Bytecode.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/DebuggerAnnotation.java; /shared/data/ccvs/repository/debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/DebuggerAnnotation.java,v <-- DebuggerAnnotation.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextImpl.java; /shared/data/ccvs/repository/debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/EditorContextImpl.java,v <-- EditorContextImpl.java new revision: 1.5; previous revision: 1.4 done Checking in debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java; /shared/data/ccvs/repository/debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/ExpressionScanner.java,v <-- ExpressionScanner.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/ToolTipAnnotation.java; /shared/data/ccvs/repository/debuggerjpda/projects/src/org/netbeans/modules/debugger/jpda/projects/ToolTipAnnotation.java,v <-- ToolTipAnnotation.java new revision: 1.5; previous revision: 1.4 done Checking in debuggerjpda/src/META-INF/debugger/netbeans-JPDASession/org.netbeans.spi.debugger.ActionsProvider; /shared/data/ccvs/repository/debuggerjpda/src/META-INF/debugger/netbeans-JPDASession/org.netbeans.spi.debugger.ActionsProvider,v <-- org.netbeans.spi.debugger.ActionsProvider new revision: 1.5; previous revision: 1.4 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/EditorContextBridge.java,v <-- EditorContextBridge.java new revision: 1.9; previous revision: 1.8 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/ExpressionPool.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/ExpressionPool.java,v <-- ExpressionPool.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/JPDADebuggerImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/JPDADebuggerImpl.java,v <-- JPDADebuggerImpl.java new revision: 1.112; previous revision: 1.111 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java,v <-- JPDAStepImpl.java new revision: 1.5; previous revision: 1.4 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/SourcePath.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/SourcePath.java,v <-- SourcePath.java new revision: 1.8; previous revision: 1.7 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java,v <-- StepActionProvider.java new revision: 1.33; previous revision: 1.32 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepIntoActionProvider.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepIntoActionProvider.java,v <-- StepIntoActionProvider.java new revision: 1.31; previous revision: 1.30 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepOperationActionProvider.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/actions/StepOperationActionProvider.java,v <-- StepOperationActionProvider.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/breakpoints/ClassBasedBreakpoint.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/breakpoints/ClassBasedBreakpoint.java,v <-- ClassBasedBreakpoint.java new revision: 1.18; previous revision: 1.17 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/breakpoints/MethodBreakpointImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/breakpoints/MethodBreakpointImpl.java,v <-- MethodBreakpointImpl.java new revision: 1.16; previous revision: 1.15 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/CallStackFrameImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/CallStackFrameImpl.java,v <-- CallStackFrameImpl.java new revision: 1.22; previous revision: 1.21 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/JPDAThreadImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/JPDAThreadImpl.java,v <-- JPDAThreadImpl.java new revision: 1.22; previous revision: 1.21 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/LocalsTreeModel.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/LocalsTreeModel.java,v <-- LocalsTreeModel.java new revision: 1.40; previous revision: 1.39 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/ReturnVariableImpl.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/ReturnVariableImpl.java,v <-- ReturnVariableImpl.java new revision: 1.3; previous revision: 1.2 done Checking in debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/ThisVariable.java; /shared/data/ccvs/repository/debuggerjpda/src/org/netbeans/modules/debugger/jpda/models/ThisVariable.java,v <-- ThisVariable.java new revision: 1.8; previous revision: 1.7 done Checking in debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/ExpressionStepTest.java; /shared/data/ccvs/repository/debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/ExpressionStepTest.java,v <-- ExpressionStepTest.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/test/TestContextProvider.java; /shared/data/ccvs/repository/debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/test/TestContextProvider.java,v <-- TestContextProvider.java new revision: 1.13; previous revision: 1.12 done Checking in debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/test/TestEngineContextProvider.java; /shared/data/ccvs/repository/debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/test/TestEngineContextProvider.java,v <-- TestEngineContextProvider.java new revision: 1.12; previous revision: 1.11 done Checking in debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/testapps/ExpressionStepApp.java; /shared/data/ccvs/repository/debuggerjpda/test/unit/src/org/netbeans/api/debugger/jpda/testapps/ExpressionStepApp.java,v <-- ExpressionStepApp.java new revision: 1.2; previous revision: 1.1 done Checking in debuggerjpda/ui/nbproject/project.xml; /shared/data/ccvs/repository/debuggerjpda/ui/nbproject/project.xml,v <-- project.xml new revision: 1.17; previous revision: 1.16 done Checking in debuggerjpda/ui/src/META-INF/debugger/netbeans-JPDASession/org.netbeans.spi.debugger.ActionsProvider; /shared/data/ccvs/repository/debuggerjpda/ui/src/META-INF/debugger/netbeans-JPDASession/org.netbeans.spi.debugger.ActionsProvider,v <-- org.netbeans.spi.debugger.ActionsProvider new revision: 1.5; previous revision: 1.4 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/resources/mf-layer.xml; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/resources/mf-layer.xml,v <-- mf-layer.xml new revision: 1.35; previous revision: 1.34 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/EditorContextBridge.java; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/EditorContextBridge.java,v <-- EditorContextBridge.java new revision: 1.12; previous revision: 1.11 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/SourcePath.java; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/SourcePath.java,v <-- SourcePath.java new revision: 1.8; previous revision: 1.7 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/Bundle.properties; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/Bundle.properties,v <-- Bundle.properties new revision: 1.36; previous revision: 1.35 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesNodeModel.java; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesNodeModel.java,v <-- VariablesNodeModel.java new revision: 1.14; previous revision: 1.13 done Checking in debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesTableModel.java; /shared/data/ccvs/repository/debuggerjpda/ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesTableModel.java,v <-- VariablesTableModel.java new revision: 1.18; previous revision: 1.17 done
Verified ... and Closing all issues resolved into NetBeans 6.7 and earlier.