Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2004-11-02 19:29:59 +0000
committerAlain Magloire2004-11-02 19:29:59 +0000
commitf93436e891bccc58aa28caea5c8e7333800a7831 (patch)
tree4cfa038395920881125e75bb0b9140e21c06e0ca
parent5ce890bd56ac8cdcce7185f1055a833c8d2bb52a (diff)
downloadorg.eclipse.cdt-f93436e891bccc58aa28caea5c8e7333800a7831.tar.gz
org.eclipse.cdt-f93436e891bccc58aa28caea5c8e7333800a7831.tar.xz
org.eclipse.cdt-f93436e891bccc58aa28caea5c8e7333800a7831.zip
2004-11-02 Alain Magloire
Refactor ICDIConfiguratio --> ICDISessionConfiguration and ICDITargetConfiguration * cdi/org/eclipse/cdt/debug/core/cdi/Session.java * cdi/org/eclipse/cdt/debug/core/cdi/SessionConfiguration.java * cdi/org/eclipse/cdt/debug/core/cdi/model/Target.java * cdi/org/eclipse/cdt/debug/core/cdi/model/TargetConfiguration.java
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/ChangeLog7
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java18
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SessionConfiguration.java39
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java5
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/CoreFileConfiguration.java (renamed from debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java)13
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java20
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/TargetConfiguration.java (renamed from debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java)23
7 files changed, 97 insertions, 28 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
index 4b76498d9f4..9079641cd6b 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
@@ -1,4 +1,11 @@
2004-11-02 Alain Magloire
+ Refactor ICDIConfiguratio --> ICDISessionConfiguration and ICDITargetConfiguration
+ * cdi/org/eclipse/cdt/debug/core/cdi/Session.java
+ * cdi/org/eclipse/cdt/debug/core/cdi/SessionConfiguration.java
+ * cdi/org/eclipse/cdt/debug/core/cdi/model/Target.java
+ * cdi/org/eclipse/cdt/debug/core/cdi/model/TargetConfiguration.java
+
+2004-11-02 Alain Magloire
Tentative fix for PR 77435
* cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java
index 3239fd59c9a..23c62b9fd32 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Session.java
@@ -14,7 +14,7 @@ package org.eclipse.cdt.debug.mi.core.cdi;
import java.util.Properties;
import org.eclipse.cdt.debug.core.cdi.CDIException;
-import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration;
+import org.eclipse.cdt.debug.core.cdi.ICDISessionConfiguration;
import org.eclipse.cdt.debug.core.cdi.ICDIEventManager;
import org.eclipse.cdt.debug.core.cdi.ICDISession;
import org.eclipse.cdt.debug.core.cdi.ICDISessionObject;
@@ -44,11 +44,11 @@ public class Session implements ICDISession, ICDISessionObject {
SharedLibraryManager sharedLibraryManager;
SignalManager signalManager;
SourceManager sourceManager;
- ICDIConfiguration configuration;
+ ICDISessionConfiguration configuration;
public Session(MISession miSession, boolean attach) {
commonSetup();
- setConfiguration(new Configuration(miSession, attach));
+ //setConfiguration(new SessionConfiguration(this));
Target target = new Target(this, miSession);
addTargets(new Target[] { target });
@@ -56,19 +56,15 @@ public class Session implements ICDISession, ICDISessionObject {
public Session(MISession miSession) {
commonSetup();
- setConfiguration(new CoreFileConfiguration());
+ //setConfiguration(new CoreFileConfiguration());
Target target = new Target(this, miSession);
addTargets(new Target[] { target });
}
- public Session() {
- commonSetup();
- setConfiguration(new CoreFileConfiguration());
- }
-
private void commonSetup() {
props = new Properties();
+ setConfiguration(new SessionConfiguration(this));
processManager = new ProcessManager(this);
breakpointManager = new BreakpointManager(this);
@@ -165,11 +161,11 @@ public class Session implements ICDISession, ICDISessionObject {
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISession#getConfiguration()
*/
- public ICDIConfiguration getConfiguration() {
+ public ICDISessionConfiguration getConfiguration() {
return configuration;
}
- public void setConfiguration(ICDIConfiguration conf) {
+ public void setConfiguration(ICDISessionConfiguration conf) {
configuration = conf;
}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SessionConfiguration.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SessionConfiguration.java
new file mode 100644
index 00000000000..1524979fae9
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SessionConfiguration.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * QNX Software Systems - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.cdt.debug.mi.core.cdi;
+
+import org.eclipse.cdt.debug.core.cdi.ICDISessionConfiguration;
+
+/**
+ * @author User
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SessionConfiguration extends SessionObject implements
+ ICDISessionConfiguration {
+
+ /**
+ * @param session
+ */
+ public SessionConfiguration(Session session) {
+ super(session);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.cdi.ICDISessionConfiguration#terminateSessionOnExit()
+ */
+ public boolean terminateSessionOnExit() {
+ return true;
+ }
+
+}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
index fed1b6552b8..64fb9ed431b 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
@@ -18,8 +18,8 @@ import java.util.List;
import java.util.Map;
import org.eclipse.cdt.debug.core.cdi.CDIException;
-import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration;
import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITargetConfiguration;
import org.eclipse.cdt.debug.mi.core.MIException;
import org.eclipse.cdt.debug.mi.core.MIFormat;
import org.eclipse.cdt.debug.mi.core.MISession;
@@ -92,8 +92,7 @@ public class SharedLibraryManager extends Manager {
public List updateState(Target target) throws CDIException {
MISession miSession = target.getMISession();
- Session session = (Session)getSession();
- ICDIConfiguration conf = session.getConfiguration();
+ ICDITargetConfiguration conf = target.getConfiguration();
if (!conf.supportsSharedLibrary()) {
return Collections.EMPTY_LIST; // Bail out early;
}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/CoreFileConfiguration.java
index 0acf6d0d209..3a29842e114 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/CoreFileConfiguration.java
@@ -8,11 +8,18 @@
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
-package org.eclipse.cdt.debug.mi.core.cdi;
+package org.eclipse.cdt.debug.mi.core.cdi.model;
-import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITargetConfiguration;
-public class CoreFileConfiguration implements ICDIConfiguration {
+public class CoreFileConfiguration extends CObject implements ICDITargetConfiguration {
+
+ /**
+ * @param t
+ */
+ public CoreFileConfiguration(Target t) {
+ super(t);
+ }
public boolean supportsTerminate() {
return true;
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
index 22babe2aa76..f892e08cc8b 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
@@ -29,6 +29,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary;
import org.eclipse.cdt.debug.core.cdi.model.ICDISignal;
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.ICDITargetConfiguration;
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread;
import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor;
import org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint;
@@ -75,6 +76,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIThreadSelectInfo;
public class Target extends SessionObject implements ICDITarget {
MISession miSession;
+ ICDITargetConfiguration fConfiguration;
Thread[] noThreads = new Thread[0];
Thread[] currentThreads;
int currentThreadId;
@@ -944,4 +946,22 @@ public class Target extends SessionObject implements ICDITarget {
return regMgr.getRegisterGroups(this);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getConfiguration()
+ */
+ public ICDITargetConfiguration getConfiguration() {
+ if (fConfiguration != null) {
+ if (miSession.isProgramSession()) {
+ fConfiguration = new TargetConfiguration(this);
+ } else if (miSession.isAttachSession()){
+ fConfiguration = new TargetConfiguration(this);
+ } else if (miSession.isCoreSession()) {
+ fConfiguration = new CoreFileConfiguration(this);
+ } else {
+ fConfiguration = new TargetConfiguration(this);
+ }
+ }
+ return fConfiguration;
+ }
+
}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/TargetConfiguration.java
index b67b38ccc79..6ec91fb4e14 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/TargetConfiguration.java
@@ -8,22 +8,19 @@
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
-package org.eclipse.cdt.debug.mi.core.cdi;
+package org.eclipse.cdt.debug.mi.core.cdi.model;
-import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration;
+import org.eclipse.cdt.debug.core.cdi.model.ICDITargetConfiguration;
import org.eclipse.cdt.debug.mi.core.MIInferior;
import org.eclipse.cdt.debug.mi.core.MIProcess;
import org.eclipse.cdt.debug.mi.core.MISession;
/**
*/
-public class Configuration implements ICDIConfiguration {
- protected boolean fAttached;
- MISession miSession;
+public class TargetConfiguration extends CObject implements ICDITargetConfiguration {
- public Configuration(MISession s, boolean attached) {
- fAttached = attached;
- miSession = s;
+ public TargetConfiguration(Target target) {
+ super(target);
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsBreakpoints()
@@ -36,7 +33,8 @@ public class Configuration implements ICDIConfiguration {
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsDisconnect()
*/
public boolean supportsDisconnect() {
- return fAttached ? true :false;
+ MISession miSession = ((Target)getTarget()).getMISession();
+ return miSession.isAttachSession() ? true : false;
}
/**
@@ -92,7 +90,8 @@ public class Configuration implements ICDIConfiguration {
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsRestart()
*/
public boolean supportsRestart() {
- return fAttached ? false : true;
+ MISession miSession = ((Target)getTarget()).getMISession();
+ return miSession.isAttachSession() ? false : true;
}
/**
@@ -125,12 +124,14 @@ public class Configuration implements ICDIConfiguration {
os = System.getProperty("os.name", ""); //$NON-NLS-1$ //$NON-NLS-2$
} catch (SecurityException e) {
}
+ Target target = (Target)getTarget();
+ MISession miSession = target.getMISession();
MIProcess gdb = miSession.getGDBProcess();
MIInferior inferior = miSession.getMIInferior();
if (gdb.canInterrupt(inferior)) {
// If we attached sending a control-c,
// seems to alays work.
- if (fAttached) {
+ if (miSession.isAttachSession()) {
return true;
}

Back to the top