Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementing the disassembly mode.

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();
  }
 }

Back to the top