1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-12 02:35:37 +02:00

Implementing the disassembly mode.

This commit is contained in:
Mikhail Khodjaiants 2002-10-10 16:51:28 +00:00
parent e01a121c1c
commit fd956221a4
3 changed files with 37 additions and 2 deletions

View file

@ -1,3 +1,7 @@
2002-10-10 Mikhail Khodjaiants
* CDebugTarget.java: Implementing the disassembly mode.
* CThread.java: Implementing the disassembly mode.
2002-10-10 Mikhail Khodjaiants 2002-10-10 Mikhail Khodjaiants
* CSourceManager.java: Implementing the disassembly mode. * CSourceManager.java: Implementing the disassembly mode.
* DisassemblyManager.java: Implementing the disassembly mode. * DisassemblyManager.java: Implementing the disassembly mode.

View file

@ -58,6 +58,7 @@ import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceManager;
import org.eclipse.cdt.debug.internal.core.sourcelookup.DisassemblyManager; import org.eclipse.cdt.debug.internal.core.sourcelookup.DisassemblyManager;
import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation; import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocation;
import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator; 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.cdt.debug.internal.core.breakpoints.CBreakpoint;
import org.eclipse.core.resources.IMarkerDelta; import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
@ -1861,4 +1862,14 @@ public class CDebugTarget extends CDebugElement
{ {
return ( getTargetType() == ICDebugTargetType.TARGET_TYPE_LOCAL_CORE_DUMP ); 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;
}
} }

View file

@ -32,6 +32,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; 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.ICDITarget;
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; 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.DebugEvent;
import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.IBreakpoint;
@ -542,9 +543,16 @@ public class CThread extends CDebugElement
if ( !canStepInto() ) if ( !canStepInto() )
return; return;
try try
{
if ( getRealSourceMode() == ISourceMode.MODE_SOURCE )
{ {
getCDIThread().stepInto(); getCDIThread().stepInto();
} }
else
{
getCDIThread().stepIntoInstruction();
}
}
catch( CDIException e ) catch( CDIException e )
{ {
targetRequestFailed( e.toString(), e ); targetRequestFailed( e.toString(), e );
@ -559,9 +567,16 @@ public class CThread extends CDebugElement
if ( !canStepOver() ) if ( !canStepOver() )
return; return;
try try
{
if ( getRealSourceMode() == ISourceMode.MODE_SOURCE )
{ {
getCDIThread().stepOver(); getCDIThread().stepOver();
} }
else
{
getCDIThread().stepOverInstruction();
}
}
catch( CDIException e ) catch( CDIException e )
{ {
targetRequestFailed( e.toString(), e ); targetRequestFailed( e.toString(), e );
@ -973,4 +988,9 @@ public class CThread extends CDebugElement
targetRequestFailed( e.getMessage(), null ); targetRequestFailed( e.getMessage(), null );
} }
} }
private int getRealSourceMode()
{
return ((CDebugTarget)getDebugTarget()).getRealSourceMode();
}
} }