mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-03 21:53:39 +02:00
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
This commit is contained in:
parent
5ce890bd56
commit
f93436e891
7 changed files with 97 additions and 28 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
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
|
2004-11-02 Alain Magloire
|
||||||
Tentative fix for PR 77435
|
Tentative fix for PR 77435
|
||||||
* cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
|
* cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
|
||||||
|
|
|
@ -14,7 +14,7 @@ package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
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.ICDIEventManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICDISession;
|
import org.eclipse.cdt.debug.core.cdi.ICDISession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICDISessionObject;
|
import org.eclipse.cdt.debug.core.cdi.ICDISessionObject;
|
||||||
|
@ -44,11 +44,11 @@ public class Session implements ICDISession, ICDISessionObject {
|
||||||
SharedLibraryManager sharedLibraryManager;
|
SharedLibraryManager sharedLibraryManager;
|
||||||
SignalManager signalManager;
|
SignalManager signalManager;
|
||||||
SourceManager sourceManager;
|
SourceManager sourceManager;
|
||||||
ICDIConfiguration configuration;
|
ICDISessionConfiguration configuration;
|
||||||
|
|
||||||
public Session(MISession miSession, boolean attach) {
|
public Session(MISession miSession, boolean attach) {
|
||||||
commonSetup();
|
commonSetup();
|
||||||
setConfiguration(new Configuration(miSession, attach));
|
//setConfiguration(new SessionConfiguration(this));
|
||||||
|
|
||||||
Target target = new Target(this, miSession);
|
Target target = new Target(this, miSession);
|
||||||
addTargets(new Target[] { target });
|
addTargets(new Target[] { target });
|
||||||
|
@ -56,19 +56,15 @@ public class Session implements ICDISession, ICDISessionObject {
|
||||||
|
|
||||||
public Session(MISession miSession) {
|
public Session(MISession miSession) {
|
||||||
commonSetup();
|
commonSetup();
|
||||||
setConfiguration(new CoreFileConfiguration());
|
//setConfiguration(new CoreFileConfiguration());
|
||||||
|
|
||||||
Target target = new Target(this, miSession);
|
Target target = new Target(this, miSession);
|
||||||
addTargets(new Target[] { target });
|
addTargets(new Target[] { target });
|
||||||
}
|
}
|
||||||
|
|
||||||
public Session() {
|
|
||||||
commonSetup();
|
|
||||||
setConfiguration(new CoreFileConfiguration());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void commonSetup() {
|
private void commonSetup() {
|
||||||
props = new Properties();
|
props = new Properties();
|
||||||
|
setConfiguration(new SessionConfiguration(this));
|
||||||
|
|
||||||
processManager = new ProcessManager(this);
|
processManager = new ProcessManager(this);
|
||||||
breakpointManager = new BreakpointManager(this);
|
breakpointManager = new BreakpointManager(this);
|
||||||
|
@ -165,11 +161,11 @@ public class Session implements ICDISession, ICDISessionObject {
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICDISession#getConfiguration()
|
* @see org.eclipse.cdt.debug.core.cdi.ICDISession#getConfiguration()
|
||||||
*/
|
*/
|
||||||
public ICDIConfiguration getConfiguration() {
|
public ICDISessionConfiguration getConfiguration() {
|
||||||
return configuration;
|
return configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConfiguration(ICDIConfiguration conf) {
|
public void setConfiguration(ICDISessionConfiguration conf) {
|
||||||
configuration = conf;
|
configuration = conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -18,8 +18,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
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.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.MIException;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
|
@ -92,8 +92,7 @@ public class SharedLibraryManager extends Manager {
|
||||||
|
|
||||||
public List updateState(Target target) throws CDIException {
|
public List updateState(Target target) throws CDIException {
|
||||||
MISession miSession = target.getMISession();
|
MISession miSession = target.getMISession();
|
||||||
Session session = (Session)getSession();
|
ICDITargetConfiguration conf = target.getConfiguration();
|
||||||
ICDIConfiguration conf = session.getConfiguration();
|
|
||||||
if (!conf.supportsSharedLibrary()) {
|
if (!conf.supportsSharedLibrary()) {
|
||||||
return Collections.EMPTY_LIST; // Bail out early;
|
return Collections.EMPTY_LIST; // Bail out early;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,18 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* QNX Software Systems - Initial API and implementation
|
* 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() {
|
public boolean supportsTerminate() {
|
||||||
return true;
|
return true;
|
|
@ -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.ICDISignal;
|
||||||
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.ICDITargetConfiguration;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread;
|
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.ICDIVariableDescriptor;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint;
|
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 {
|
public class Target extends SessionObject implements ICDITarget {
|
||||||
|
|
||||||
MISession miSession;
|
MISession miSession;
|
||||||
|
ICDITargetConfiguration fConfiguration;
|
||||||
Thread[] noThreads = new Thread[0];
|
Thread[] noThreads = new Thread[0];
|
||||||
Thread[] currentThreads;
|
Thread[] currentThreads;
|
||||||
int currentThreadId;
|
int currentThreadId;
|
||||||
|
@ -944,4 +946,22 @@ public class Target extends SessionObject implements ICDITarget {
|
||||||
return regMgr.getRegisterGroups(this);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,22 +8,19 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* QNX Software Systems - Initial API and implementation
|
* 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.MIInferior;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIProcess;
|
import org.eclipse.cdt.debug.mi.core.MIProcess;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class Configuration implements ICDIConfiguration {
|
public class TargetConfiguration extends CObject implements ICDITargetConfiguration {
|
||||||
protected boolean fAttached;
|
|
||||||
MISession miSession;
|
|
||||||
|
|
||||||
public Configuration(MISession s, boolean attached) {
|
public TargetConfiguration(Target target) {
|
||||||
fAttached = attached;
|
super(target);
|
||||||
miSession = s;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsBreakpoints()
|
* @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()
|
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsDisconnect()
|
||||||
*/
|
*/
|
||||||
public boolean 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()
|
* @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsRestart()
|
||||||
*/
|
*/
|
||||||
public boolean 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$
|
os = System.getProperty("os.name", ""); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
}
|
}
|
||||||
|
Target target = (Target)getTarget();
|
||||||
|
MISession miSession = target.getMISession();
|
||||||
MIProcess gdb = miSession.getGDBProcess();
|
MIProcess gdb = miSession.getGDBProcess();
|
||||||
MIInferior inferior = miSession.getMIInferior();
|
MIInferior inferior = miSession.getMIInferior();
|
||||||
if (gdb.canInterrupt(inferior)) {
|
if (gdb.canInterrupt(inferior)) {
|
||||||
// If we attached sending a control-c,
|
// If we attached sending a control-c,
|
||||||
// seems to alays work.
|
// seems to alays work.
|
||||||
if (fAttached) {
|
if (miSession.isAttachSession()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue