Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Support of the 'Resume Without Signal' action

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v
retrieving revision 1.122
diff -u -r1.122 ChangeLog
--- ChangeLog 4 Feb 2003 21:29:47 -0000 1.122
+++ ChangeLog 4 Feb 2003 23:42:34 -0000
@@ -1,3 +1,12 @@
+2003-02-04 Mikhail Khodjaiants
+ Support of the 'Resume Without Signal' action.
+ * IResumeWithoutSignal.java: new
+ * ICDebugTarget.java
+ * CDebugTarget.java
+ * CThread.java
+ * CStackFrame.java
+ * CSignal.java

 2003-02-03  Alain Magloire
 
  * src/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java:
Index: src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java,v
retrieving revision 1.3
diff -u -r1.3 ICDebugTarget.java
--- src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java 13 Jan 2003 22:25:31 -0000 1.3
+++ src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java 4 Feb 2003 23:42:34 -0000
@@ -21,6 +21,7 @@
             IRestart,
             IRunToLine,
             IRunToAddress,
+            IResumeWithoutSignal,
             IState,
             ISwitchToThread,
             ICBreakpointManager
Index: src/org/eclipse/cdt/debug/core/model/IResumeWithoutSignal.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/core/model/IResumeWithoutSignal.java
diff -N src/org/eclipse/cdt/debug/core/model/IResumeWithoutSignal.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/core/model/IResumeWithoutSignal.java 4 Feb 2003 23:42:34 -0000
@@ -0,0 +1,33 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.core.model;
+
+import org.eclipse.debug.core.DebugException;
+
+/**
+ * Provides the ability to resume execution without giving a signal.
+ * This is useful when the program stopped on account of a signal and would
+ * ordinary see the signal when resumed.
+ *
+ * @since: Feb 4, 2003
+ */
+public interface IResumeWithoutSignal
+{
+ /**
+  * Causes this element to resume its execution ignoring a signal.
+  * Has no effect on an element that is not suspended because of a signal.
+  *
+  * @exception DebugException on failure. Reasons include:
+  */
+ public void resumeWithoutSignal() throws DebugException;
+
+ /**
+  * Returns whether this element can currently be resumed without signal.
+  *
+  * @return whether this element can currently be resumed without signal
+  */
+ boolean canResumeWithoutSignal();
+}
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.81
diff -u -r1.81 CDebugTarget.java
--- src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 4 Feb 2003 21:29:47 -0000 1.81
+++ src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 4 Feb 2003 23:42:37 -0000
@@ -2443,4 +2443,28 @@
  {
   fSetBreakpoints = retry;
  }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#canResumeWithoutSignal()
+  */
+ public boolean canResumeWithoutSignal()
+ {
+  // Check if the configuration supports this!!!
+  return ( isSuspended() && getCurrentStateInfo() instanceof ICDISignalReceived );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#resumeWithoutSignal()
+  */
+ public void resumeWithoutSignal() throws DebugException
+ {
+  try
+  {
+   getCDITarget().signal();
+  }
+  catch( CDIException e )
+  {
+   targetRequestFailed( e.toString(), e );
+  }
+ }
 }
Index: src/org/eclipse/cdt/debug/internal/core/model/CSignal.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java,v
retrieving revision 1.3
diff -u -r1.3 CSignal.java
--- src/org/eclipse/cdt/debug/internal/core/model/CSignal.java 3 Feb 2003 23:42:33 -0000 1.3
+++ src/org/eclipse/cdt/debug/internal/core/model/CSignal.java 4 Feb 2003 23:42:35 -0000
@@ -102,7 +102,7 @@
  {
   try
   {
-   getCDISignal().signal();
+   getCDITarget().signal( getCDISignal() );
   }
   catch( CDIException e )
   {
Index: src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java,v
retrieving revision 1.15
diff -u -r1.15 CStackFrame.java
--- src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java 27 Jan 2003 18:31:43 -0000 1.15
+++ src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java 4 Feb 2003 23:42:38 -0000
@@ -20,6 +20,7 @@
 import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable;
 import org.eclipse.cdt.debug.core.model.IRestart;
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignal;
 import org.eclipse.cdt.debug.core.model.IStackFrameInfo;
 import org.eclipse.cdt.debug.core.sourcelookup.ICSourceLocator;
 import org.eclipse.core.runtime.IAdaptable;
@@ -39,7 +40,8 @@
 public class CStackFrame extends CDebugElement
        implements IStackFrame,
           IStackFrameInfo,
-          IRestart,
+          IRestart,
+          IResumeWithoutSignal,
           ICDIEventListener
 {
  /**
@@ -751,5 +753,25 @@
  private boolean refreshVariables()
  {
   return fRefreshVariables;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#canResumeWithoutSignal()
+  */
+ public boolean canResumeWithoutSignal()
+ {
+  return ( getDebugTarget() instanceof IResumeWithoutSignal &&
+     ((IResumeWithoutSignal)getDebugTarget()).canResumeWithoutSignal() );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#resumeWithoutSignal()
+  */
+ public void resumeWithoutSignal() throws DebugException
+ {
+  if ( canResumeWithoutSignal() )
+  {
+   ((IResumeWithoutSignal)getDebugTarget()).resumeWithoutSignal();
+  }
  }
 }
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.24
diff -u -r1.24 CThread.java
--- src/org/eclipse/cdt/debug/internal/core/model/CThread.java 21 Jan 2003 21:40:32 -0000 1.24
+++ src/org/eclipse/cdt/debug/internal/core/model/CThread.java 4 Feb 2003 23:42:38 -0000
@@ -32,6 +32,7 @@
 import org.eclipse.cdt.debug.core.model.IDummyStackFrame;
 import org.eclipse.cdt.debug.core.model.IInstructionStep;
 import org.eclipse.cdt.debug.core.model.IRestart;
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignal;
 import org.eclipse.cdt.debug.core.model.IRunToLine;
 import org.eclipse.cdt.debug.core.model.IState;
 import org.eclipse.cdt.debug.core.model.ISwitchToFrame;
@@ -61,6 +62,7 @@
          IRestart,
          IRunToLine,
          IInstructionStep,
+         IResumeWithoutSignal,
          ISwitchToFrame,
          ICDIEventListener
 {
@@ -1157,5 +1159,25 @@
  protected boolean isDisposed()
  {
   return fDisposed;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#canResumeWithoutSignal()
+  */
+ public boolean canResumeWithoutSignal()
+ {
+  return ( getDebugTarget() instanceof IResumeWithoutSignal &&
+     ((IResumeWithoutSignal)getDebugTarget()).canResumeWithoutSignal() );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.model.IResumeWithoutSignal#resumeWithoutSignal()
+  */
+ public void resumeWithoutSignal() throws DebugException
+ {
+  if ( canResumeWithoutSignal() )
+  {
+   ((IResumeWithoutSignal)getDebugTarget()).resumeWithoutSignal();
+  }
  }
 }

Back to the top