When the disassembly mode is set 'step over' and
'step into' work as 'step over instruction' and 'step into
instruction'.
Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v retrieving revision
1.2 diff -u -r1.2 ChangeLog --- ChangeLog 10 Oct 2002 15:29:50
-0000 1.2 +++ ChangeLog 10 Oct 2002 16:46:32 -0000 @@ -1,4 +1,8
@@ 2002-10-10 Mikhail Khodjaiants + * CDebugTarget.java:
Implementing the disassembly mode. + * CThread.java: Implementing
the disassembly mode. + +2002-10-10 Mikhail Khodjaiants *
CSourceManager.java: Implementing the disassembly mode. *
DisassemblyManager.java: Implementing the disassembly mode. *
DisassemblyStorage.java: Implementing the disassembly mode. Index:
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java,v retrieving
revision 1.41 diff -u -r1.41 CDebugTarget.java ---
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 9 Oct 2002
17:56:16 -0000 1.41 +++
src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 10 Oct 2002
16:46:33 -0000 @@ -58,6 +58,7 @@ import
org.eclipse.cdt.debug.internal.core.sourcelookup.DisassemblyManager; import
org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; import
org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator; +import
org.eclipse.cdt.debug.core.sourcelookup.ISourceMode; import
org.eclipse.cdt.debug.internal.core.breakpoints.CBreakpoint; import
org.eclipse.core.resources.IMarkerDelta; import
org.eclipse.core.resources.IProject; @@ -1860,5 +1861,15
@@ protected boolean
isCoreDumpTarget() { return (
getTargetType() == ICDebugTargetType.TARGET_TYPE_LOCAL_CORE_DUMP
); + } + + protected int
getRealSourceMode() + { + ISourceLocator sl =
getSourceLocator(); + if ( sl != null && sl instanceof
CSourceManager ) + { + return
((CSourceManager)sl).getRealMode(); + } + return
ISourceMode.MODE_SOURCE; } } Index:
src/org/eclipse/cdt/debug/internal/core/model/CThread.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java,v retrieving
revision 1.12 diff -u -r1.12 CThread.java ---
src/org/eclipse/cdt/debug/internal/core/model/CThread.java 2 Oct 2002
21:13:02 -0000 1.12 +++
src/org/eclipse/cdt/debug/internal/core/model/CThread.java 10 Oct 2002
16:46:34 -0000 @@ -32,6 +32,7 @@ import
org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import
org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import
org.eclipse.cdt.debug.core.cdi.model.ICDIThread; +import
org.eclipse.cdt.debug.core.sourcelookup.ISourceMode; import
org.eclipse.debug.core.DebugEvent; import
org.eclipse.debug.core.DebugException; import
org.eclipse.debug.core.model.IBreakpoint; @@ -543,7 +544,14
@@ return; try { - getCDIThread().stepInto(); + if
( getRealSourceMode() == ISourceMode.MODE_SOURCE
) + { + getCDIThread().stepInto(); + } + else + { + getCDIThread().stepIntoInstruction(); + } } catch(
CDIException e ) { @@ -560,7 +568,14
@@ return; try { - getCDIThread().stepOver(); + if
( getRealSourceMode() == ISourceMode.MODE_SOURCE
) + { + getCDIThread().stepOver(); + } + else + { + getCDIThread().stepOverInstruction(); + } } catch(
CDIException e ) { @@ -972,5 +987,10
@@ { targetRequestFailed(
e.getMessage(), null
); } + } + + private int
getRealSourceMode() + { + return
((CDebugTarget)getDebugTarget()).getRealSourceMode(); } }
|