From f5bde83546ef21b7bda1a823287e9bf2ef00d1d4 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Fri, 15 Oct 2004 15:48:31 +0000 Subject: [PATCH] 2004-10-15 Alain Magloire Adjustment to changes in CDI interface concerning breakpoints. Now the thread ids for a breakpoint is specified in the ICDICondition. * cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java * CBreakpointManager.java * CDebugTarget.java --- debug/org.eclipse.cdt.debug.core/ChangeLog | 11 +++++++++++ .../org/eclipse/cdt/debug/core/cdi/ICDICondition.java | 8 +++++++- .../cdt/debug/core/cdi/model/ICDIBreakpoint.java | 8 -------- .../core/cdi/model/ICDIBreakpointManagement.java | 2 +- .../eclipse/cdt/debug/core/cdi/model/ICDITarget.java | 7 ++++++- .../cdt/debug/internal/core/CBreakpointManager.java | 6 +++--- .../cdt/debug/internal/core/model/CDebugTarget.java | 2 +- 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 29d6ff9ad1a..4e4f6917321 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,14 @@ +2004-10-15 Alain Magloire + Adjustment to changes in CDI interface concerning breakpoints. + Now the thread ids for a breakpoint is specified in the ICDICondition. + * cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java + * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java + * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java + * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java + + * CBreakpointManager.java + * CDebugTarget.java + 2004-10-14 Mikhail Khodjaiants Partial fix for bug 39936 GDB hits modified conditional breakpoints when condition not satisfied. Condition has to be set at the mi level. diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java index 1bf2ed1fb9c..dafde0abd76 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDICondition.java @@ -31,5 +31,11 @@ public interface ICDICondition { * @return the ignore count of this condition */ int getIgnoreCount(); - + + /** + * Returns the thread Ids for this condition. + * + * @return the thread Ids for this condition. + */ + String[] getThreadIds(); } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java index f0d2f879a66..c6ce8cbd967 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpoint.java @@ -81,12 +81,4 @@ public interface ICDIBreakpoint extends ICDIObject { */ void setCondition( ICDICondition condition ) throws CDIException; - /** - * Returns a thread identifier or null is the breakpoint - * is not thread-specific. - * - * @return a thread identifier - * @throws CDIException if this method fails. Reasons include: - */ - String getThreadId() throws CDIException; } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java index 09dce5286c2..ae8e15a3961 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIBreakpointManagement.java @@ -24,7 +24,7 @@ public interface ICDIBreakpointManagement { ICDIBreakpoint[] getBreakpoints() throws CDIException; ICDILocationBreakpoint setLocationBreakpoint(int type, ICDILocation location, - ICDICondition condition, String threadId, boolean deferred) throws CDIException; + ICDICondition condition, boolean deferred) throws CDIException; ICDIWatchpoint setWatchpoint(int type, int watchType, String expression, ICDICondition condition) throws CDIException; diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java index af0cb6486d6..2b62f9ed176 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDITarget.java @@ -170,12 +170,17 @@ public interface ICDITarget extends ICDIThreadGroup, ICDISessionObject { * @throws CDIException */ void signal(ICDISignal signal) throws CDIException; - + /** * Return a ICDICondition */ ICDICondition createCondition(int ignoreCount, String expression); + /** + * Return a ICDICondition + */ + ICDICondition createCondition(int ignoreCount, String expression, String[] threadIds); + /** * Returns a ICDILocation */ diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java index ff23226a5ad..006ae168056 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java @@ -496,7 +496,7 @@ public class CBreakpointManager implements IBreakpointManagerListener, ICDIEvent ICDICondition condition = cdiTarget.createCondition( breakpoint.getIgnoreCount(), breakpoint.getCondition() ); ICDIBreakpoint cdiBreakpoint = null; synchronized ( getBreakpointMap() ) { - cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, null, true ); + cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, true ); getBreakpointMap().put( breakpoint, cdiBreakpoint ); } return cdiBreakpoint; @@ -510,7 +510,7 @@ public class CBreakpointManager implements IBreakpointManagerListener, ICDIEvent ICDILocation location = cdiTarget.createLocation( new BigInteger ( breakpoint.getAddress().substring( 2 ), 16 ) ); ICDICondition condition = cdiTarget.createCondition( breakpoint.getIgnoreCount(), breakpoint.getCondition() ); synchronized ( getBreakpointMap() ) { - cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, null, true ); + cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, true ); getBreakpointMap().put( breakpoint, cdiBreakpoint ); } } @@ -523,7 +523,7 @@ public class CBreakpointManager implements IBreakpointManagerListener, ICDIEvent ICDICondition condition = cdiTarget.createCondition( breakpoint.getIgnoreCount(), breakpoint.getCondition() ); ICDIBreakpoint cdiBreakpoint = null; synchronized ( getBreakpointMap() ) { - cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, null, true ); + cdiBreakpoint = cdiTarget.setLocationBreakpoint( ICDIBreakpoint.REGULAR, location, condition, true ); getBreakpointMap().put( breakpoint, cdiBreakpoint ); } return cdiBreakpoint; diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index 04e1033ecc7..b0ac0bc3071 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -1321,7 +1321,7 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv public void setInternalTemporaryBreakpoint( ICDILocation location ) throws DebugException { try { - getCDITarget().setLocationBreakpoint( ICDIBreakpoint.TEMPORARY, location, null, null, false ); + getCDITarget().setLocationBreakpoint( ICDIBreakpoint.TEMPORARY, location, null, false ); } catch( CDIException e ) { targetRequestFailed( e.getMessage(), null );