diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index cf407e3efac..df77d2606d5 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,13 @@ +2004-10-31 Alain Magloire + Refactor ICDIVariableObject --> ICDIVariableDescriptor + Refactor ICDIArgumentObject --> ICDIArgumentDescriptor + Refactor ICDIRegisterObject --> ICDIRegisterDescriptor + Addition ICDIThreadStorageDescriptor, ICDIThreadStorage + Addition ICDILocalVariableDescriptor, ICDILocalVariable + Addition ICDIGlobalVariableDescriptor, ICDIGlovalVariable + + Adjust the classes to the changes. + 2004-10-29 Mikhail Khodjaiants Use the new expression API of CDI. * CDebugModel.java diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIRegisterManager.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIRegisterManager.java deleted file mode 100644 index 02788ac2777..00000000000 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIRegisterManager.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * 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.core.cdi; - -import org.eclipse.cdt.debug.core.cdi.model.*; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; - -/** - * The default behaviour of the register is autoupdate on. - */ -public interface ICDIRegisterManager extends ICDIManager { - - /** - * Method getRegisterObjects. - * @return ICDIRegisterObject[] - * @throws CDIException - */ - ICDIRegisterObject[] getRegisterObjects() throws CDIException; - - /** - * Method createRegister. - * @param stack - * @param reg - * @return ICDIRegister - * @throws CDIException - */ - ICDIRegister createRegister(ICDIRegisterObject reg) throws CDIException; - - /** - * Method removeRegister, remove register from the manager list. - * @param reg - */ - void destroyRegister(ICDIRegister reg); - -} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDISession.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDISession.java index 7f69ee58685..94ca9a7187c 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDISession.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDISession.java @@ -45,20 +45,6 @@ public interface ICDISession { */ String getAttribute(String key); - /** - * Returns the variable manager of this debug session. - * - * @return the variable manager - */ - ICDIVariableManager getVariableManager(); - - /** - * Returns the register manager of this debug session. - * - * @return the register manager - */ - ICDIRegisterManager getRegisterManager(); - /** * Returns the event manager of this debug session. * diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIVariableManager.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIVariableManager.java deleted file mode 100644 index b5e276e2da5..00000000000 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/ICDIVariableManager.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * 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.core.cdi; - -import org.eclipse.cdt.debug.core.cdi.model.*; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgument; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; - -/** - * Auto update is on by default. - */ -public interface ICDIVariableManager extends ICDIManager { - - /** - * Method getVariableObject. - * you can specify a static/global variable in a particular function or file, - * filename or/and function is the context for the static ICDIVariableObject. - *
- * hello.c: - * int bar; - * int main() { - * static int bar; - * } - * file.c: - * int foo() { - * static int bar; - * } - * getVariableObject(null, null, "bar"); - * getVariableObject(null, "main", "bar"); - * getVariableObject("file.c", "foo", "bar"); - *- * @param filename - * @param function - * @param name - * @return ICDIVariableObject - * @throws CDIException - */ - ICDIVariableObject getGlobalVariableObject(String filename, String function, String name) throws CDIException; - - /** - * Consider the variable object as an Array of type and range[start, start + length - 1] - * @param stack - * @param name - * @return ICDIVariableObject - * @throws CDIException - */ - ICDIVariableObject getVariableObjectAsArray(ICDIVariableObject var, int start, int length) throws CDIException; - - /** - * Consider the variable object as type. - * @param stack - * @param name - * @return ICDIVariableObject - * @throws CDIException - */ - ICDIVariableObject getVariableObjectAsType(ICDIVariableObject var, String type) throws CDIException; - - /** - * Method getVariableObjects. - * Returns all the local variable objects of that stackframe. - * @param stack - * @return ICDIVariableObject[] - * @throws CDIException - */ - ICDIVariableObject[] getLocalVariableObjects(ICDIStackFrame stack) throws CDIException; - - /** - * Method getVariableObjects. - * Returns all the local variable objects of that stackframe. - * @param stack - * @return ICDIVariableObject[] - * @throws CDIException - */ - ICDIVariableObject[] getVariableObjects(ICDIStackFrame stack) throws CDIException; - - /** - * Method createVariable. - * Create a Variable for evaluation. A CreatedEvent will be trigger and - * ChangedEvent will also be trigger when the variable is assign a new value. - * DestroyedEvent is fired when the variable is out of scope and automatically - * removed from the manager list. - * @param var - * @return ICDIVariable - * @throws CDIException - */ - ICDIVariable createVariable(ICDIVariableObject var) throws CDIException; - - /** - * Method getArgumentObjects. - * Returns all the local arguments of that stackframe. - * @param stack - * @return ICDIArgumentObject[] - * @throws CDIException - */ - ICDIArgumentObject[] getArgumentObjects(ICDIStackFrame stack) throws CDIException; - - /** - * Method createArgument. - * Create a Variable for evaluation. CreatedEvent will be trigger and - * ChangedEvent will also be trigger when the variable is assign a new value. - * DestroyedEvent is fired when the variable is out of scope and automatically - * from th manager list. - * @param var - * @return ICDIArgument - * @throws CDIException - */ - ICDIArgument createArgument(ICDIArgumentObject var) throws CDIException; - - /** - * Remove the variable from the manager list. - * @param var - * @return ICDIArgument - * @throws CDIException - */ - void destroyVariable(ICDIVariable var) throws CDIException; - -} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgument.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgument.java index 61299922243..9ff05256099 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgument.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgument.java @@ -17,5 +17,5 @@ package org.eclipse.cdt.debug.core.cdi.model; * * @since Jul 22, 2002 */ -public interface ICDIArgument extends ICDIVariable, ICDIArgumentObject { +public interface ICDIArgument extends ICDIVariable, ICDIArgumentDescriptor { } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentObject.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentDescriptor.java similarity index 88% rename from debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentObject.java rename to debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentDescriptor.java index 6b1da4496ed..f30a9b72edb 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentObject.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIArgumentDescriptor.java @@ -13,5 +13,5 @@ package org.eclipse.cdt.debug.core.cdi.model; /** */ -public interface ICDIArgumentObject extends ICDIVariableObject { +public interface ICDIArgumentDescriptor extends ICDILocalVariableDescriptor { } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIExpression.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIExpression.java index f7cc765f8e8..1b50b0d9f77 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIExpression.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIExpression.java @@ -12,7 +12,6 @@ package org.eclipse.cdt.debug.core.cdi.model; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; /** * An expression is a snippet of code that can be evaluated to @@ -47,4 +46,13 @@ public interface ICDIExpression extends ICDIObject { */ ICDIValue getValue(ICDIStackFrame context) throws CDIException; + /** + * Remove the expression from the manager list. + * + * @param var + * @return ICDIArgument + * @throws CDIException + */ + void dispose() throws CDIException; + } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariable.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariable.java new file mode 100644 index 00000000000..72fe1ce08e2 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariable.java @@ -0,0 +1,19 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +/** + * ICDIGlobalVariable + */ +public interface ICDIGlobalVariable extends ICDIVariable { + +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariableDescriptor.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariableDescriptor.java new file mode 100644 index 00000000000..bea86853e7d --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIGlobalVariableDescriptor.java @@ -0,0 +1,19 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +/** + * ICDIGlobalVariableDescriptor + */ +public interface ICDIGlobalVariableDescriptor extends ICDIVariableDescriptor { + +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariable.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariable.java new file mode 100644 index 00000000000..b3eb67ca6b5 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariable.java @@ -0,0 +1,26 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +import org.eclipse.cdt.debug.core.cdi.CDIException; + +/** + * ICDILocalVariable + */ +public interface ICDILocalVariable extends ICDIVariable { + + /** + * + * @return ICDIStackFrame + */ + ICDIStackFrame getStackFrame() throws CDIException; +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariableDescriptor.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariableDescriptor.java new file mode 100644 index 00000000000..7a589ac5bda --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDILocalVariableDescriptor.java @@ -0,0 +1,28 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +import org.eclipse.cdt.debug.core.cdi.CDIException; + +/** + * ICDILocalVariableDescriptor + */ +public interface ICDILocalVariableDescriptor extends ICDIVariableDescriptor { + + /** + * Return the stackframe. + * + * @return ICDIStackFrame + * @throws CDIException + */ + ICDIStackFrame getStackFrame() throws CDIException; +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegister.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegister.java index 2d9188f04a7..277d307e83b 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegister.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegister.java @@ -18,5 +18,5 @@ package org.eclipse.cdt.debug.core.cdi.model; * * @since Jul 9, 2002 */ -public interface ICDIRegister extends ICDIVariable, ICDIRegisterObject { +public interface ICDIRegister extends ICDIVariable, ICDIRegisterDescriptor { } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterObject.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterDescriptor.java similarity index 90% rename from debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterObject.java rename to debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterDescriptor.java index a9d8a9469ec..4a073589c04 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterObject.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterDescriptor.java @@ -17,5 +17,5 @@ package org.eclipse.cdt.debug.core.cdi.model; * * @since Jul 9, 2002 */ -public interface ICDIRegisterObject extends ICDIVariableObject { +public interface ICDIRegisterDescriptor extends ICDIVariableDescriptor { } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java index f789b838131..208ddc117e7 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java @@ -20,11 +20,19 @@ import org.eclipse.cdt.debug.core.cdi.CDIException; * @since Jul 9, 2002 */ public interface ICDIRegisterGroup extends ICDIObject { + /** - * Returns the registers in this register group. + * The name of the group. * - * @return the registers in this register group + * @return String name + */ + String getName(); + + /** + * Returns the register descriptors in this register group. + * + * @return ICDIRegisterDescriptor[] in this register group * @throws CDIException if this method fails. Reasons include: */ - ICDIRegister[] getRegisters() throws CDIException; + ICDIRegisterDescriptor[] getRegisterDescriptors() throws CDIException; } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStackFrame.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStackFrame.java index 9c0031e3743..0e4ca2527a8 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStackFrame.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStackFrame.java @@ -23,6 +23,7 @@ import org.eclipse.cdt.debug.core.cdi.ICDILocation; * @since Jul 8, 2002 */ public interface ICDIStackFrame extends ICDIExecuteStepReturn, ICDIObject { + /** * Returns the location of the instruction pointer in this * stack frame. @@ -38,7 +39,7 @@ public interface ICDIStackFrame extends ICDIExecuteStepReturn, ICDIObject { * @return a collection of visible variables * @throws CDIException if this method fails. Reasons include: */ - ICDIVariable[] getLocalVariables() throws CDIException; + ICDILocalVariableDescriptor[] getLocalVariableDescriptors() throws CDIException; /** * Returns the arguments in this stack frame. An empty collection @@ -47,7 +48,7 @@ public interface ICDIStackFrame extends ICDIExecuteStepReturn, ICDIObject { * @return a collection of arguments * @throws CDIException if this method fails. Reasons include: */ - ICDIArgument[] getArguments() throws CDIException; + ICDIArgumentDescriptor[] getArgumentDescriptors() throws CDIException; /** * Returns the thread this stackframe is contained in. diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStaticVariable.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStaticVariable.java deleted file mode 100644 index c13b2352cf1..00000000000 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIStaticVariable.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * 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.core.cdi.model; - -/** - * - * Represents a static data structure in the program. - * - * @since Jul 9, 2002 - */ -public interface ICDIStaticVariable extends ICDIVariable { -} 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 8c84c361661..71c7141d744 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 @@ -47,6 +47,38 @@ public interface ICDITarget extends ICDIThreadGroup, ICDIExpressionManagement, String evaluateExpressionToString(ICDIStackFrame context, String expressionText) throws CDIException; + /** + * A static/global variable in a particular function or file, + * filename or/and function is the context for the static ICDIVariableDescriptor. + *
+ * hello.c: + * int bar; + * int main() { + * static int bar; + * } + * file.c: + * int foo() { + * static int bar; + * } + * getVariableObject(null, null, "bar"); + * getVariableObject(null, "main", "bar"); + * getVariableObject("file.c", "foo", "bar"); + *+ * @param filename + * @param function + * @param name + * @return ICDIVariableDescriptor + * @throws CDIException + */ + ICDIVariableDescriptor getGlobalVariableDescriptors(String filename, String function, String name) throws CDIException; + + /** + * Return the register groups. + * + * @return ICDIRegisterGroup[] + */ + ICDIRegisterGroup[] getRegisterGroups() throws CDIException; + /** * Returns whether this target is terminated. * diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThread.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThread.java index 69a359017dd..b890e6021cd 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThread.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThread.java @@ -48,37 +48,20 @@ public interface ICDIThread extends ICDIExecuteStep, ICDIExecuteResume, ICDISusp ICDIStackFrame[] getStackFrames(int lowFrame, int highFrame) throws CDIException; /** - * Returns the depth of the stack frames + * Returns the depth of the stack frames. + * * @return depth of stack frames * @throws CDIException if this method fails. Reasons include: */ int getStackFrameCount() throws CDIException; /** - * Set the current Stack for the thread. + * Return thread local storage variables descriptor. * - * @deprecated - * @param - ICDIStackFrame + * @return + * @throws CDIException */ - void setCurrentStackFrame(ICDIStackFrame current) throws CDIException; - - /** - * Set the current frame whithout generation any events, for example - * registers changed events. - * - * @deprecated - * @param frame - * @param b - */ - void setCurrentStackFrame(ICDIStackFrame frame, boolean doUpdate) throws CDIException; - - /** - * Set the current stackframe. - * - * @deprecated - * @return ICDIStackFrame - */ - ICDIStackFrame getCurrentStackFrame() throws CDIException; + ICDIThreadStorageDescriptor[] getThreadStorageDescriptors() throws CDIException; /** * Equivalent to resume(false) diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorage.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorage.java new file mode 100644 index 00000000000..4c8077bc1d7 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorage.java @@ -0,0 +1,25 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +import org.eclipse.cdt.debug.core.cdi.CDIException; + +/** + * ICDIThreadStorage + */ +public interface ICDIThreadStorage extends ICDIVariable { + + /** + * @return ICDIThread + */ + ICDIThread getThread() throws CDIException; +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorageDescriptor.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorageDescriptor.java new file mode 100644 index 00000000000..863c196dbfc --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIThreadStorageDescriptor.java @@ -0,0 +1,29 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.core.cdi.model; + +import org.eclipse.cdt.debug.core.cdi.CDIException; + +/** + * ICDIThreadStorageDescriptor + */ +public interface ICDIThreadStorageDescriptor extends + ICDIVariableDescriptor { + + /** + * Return the thread. + * + * @return ICDIThread + * @throws CDIException + */ + ICDIThread getThread() throws CDIException; +} diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariable.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariable.java index d8708569a5c..3f0a9b0d912 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariable.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariable.java @@ -20,8 +20,15 @@ import org.eclipse.cdt.debug.core.cdi.CDIException; * * @since Jul 9, 2002 */ -public interface ICDIVariable extends ICDIVariableObject { +public interface ICDIVariable extends ICDIVariableDescriptor { + /** + * Returns true if the value of this variable could be changed. + * + * @return true if the value of this variable could be changed + * @throws CDIException if this method fails. Reasons include: + */ + boolean isEditable() throws CDIException; /** * Returns the value of this variable. @@ -56,4 +63,13 @@ public interface ICDIVariable extends ICDIVariableObject { */ void setFormat(int format) throws CDIException; + /** + * Remove the variable from the manager list. + * + * @param var + * @return ICDIArgument + * @throws CDIException + */ + void dispose() throws CDIException; + } diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableObject.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableDescriptor.java similarity index 60% rename from debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableObject.java rename to debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableDescriptor.java index e9dc5d170f6..9204e5a0232 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableObject.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIVariableDescriptor.java @@ -18,7 +18,7 @@ import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; /** * */ -public interface ICDIVariableObject extends ICDIObject { +public interface ICDIVariableDescriptor extends ICDIObject { /** * Returns the name of this variable. @@ -28,16 +28,7 @@ public interface ICDIVariableObject extends ICDIObject { String getName(); /** - * Returns the stackframe where the variable was found - * may return null. - * - * @return the stackframe - * @throws CDIException if this method fails. Reasons include: - */ - ICDIStackFrame getStackFrame() throws CDIException; - - /** - * Returns the type of data this variable is declared. + * Returns the type of this variable descriptor. * * @return the type of data this variable is declared * @throws CDIException if this method fails. Reasons include: @@ -45,7 +36,7 @@ public interface ICDIVariableObject extends ICDIObject { ICDIType getType() throws CDIException; /** - * Returns the type of data this variable is declared. + * Returns the type name of this variable descriptor. * * @return the type of data this variable is declared * @throws CDIException if this method fails. Reasons include: @@ -53,21 +44,13 @@ public interface ICDIVariableObject extends ICDIObject { String getTypeName() throws CDIException; /** - * Returns the size of this variable. + * Returns the size of this variable descriptor. * * @return the size of this variable * @throws CDIException if this method fails. Reasons include: */ int sizeof() throws CDIException; - /** - * Returns true if the value of this variable could be changed. - * - * @return true if the value of this variable could be changed - * @throws CDIException if this method fails. Reasons include: - */ - boolean isEditable() throws CDIException; - /** * Returns the qualified name of this variable. * @@ -76,12 +59,42 @@ public interface ICDIVariableObject extends ICDIObject { */ String getQualifiedName() throws CDIException; + /** + * Consider the variable object as an Array of type and range[start, start + length - 1] + * @param stack + * @param name + * @return ICDIVariableDescriptor + * @throws CDIException + */ + ICDIVariableDescriptor getVariableDescriptorAsArray(int start, int length) throws CDIException; + + /** + * Consider the variable descritor as type. + * + * @param stack + * @param name + * @return ICDIVariableDescriptor + * @throws CDIException + */ + ICDIVariableDescriptor getVariableDescriptorAsType(String type) throws CDIException; + + /** + * Create a Variable for evaluation. A CreatedEvent will be trigger and + * ChangedEvent will also be trigger when the variable is assign a new value. + * DestroyedEvent is fired when the variable is out of scope and automatically + * removed from the manager list. + * @param var + * @return ICDIVariable + * @throws CDIException + */ + ICDIVariable createVariable() throws CDIException; + /** * Returns true if the variable Object are the same, * For example event if the name is the same because of * casting this may return false; * @return true if the same */ - boolean equals(ICDIVariableObject varObject); + boolean equals(ICDIVariableDescriptor varDesc); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java index 04205507c93..cc7d59f0475 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java @@ -18,7 +18,7 @@ import org.eclipse.cdt.debug.core.ICDebugConstants; import org.eclipse.cdt.debug.core.ICRegisterManager; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDIManager; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; import org.eclipse.cdt.debug.internal.core.model.CDebugTarget; import org.eclipse.cdt.debug.internal.core.model.CRegisterGroup; import org.eclipse.cdt.debug.internal.core.model.CStackFrame; @@ -103,22 +103,19 @@ public class CRegisterManager extends CUpdateManager implements ICRegisterManage } private void createMainRegisterGroup() { - ICDIRegisterObject[] regObjects = null; + ICDIRegisterGroup[] groups = null; try { - regObjects = getDebugTarget().getCDISession().getRegisterManager().getRegisterObjects(); + groups = getDebugTarget().getCDITarget().getRegisterGroups(); } catch( CDIException e ) { CDebugCorePlugin.log( e ); } - if ( regObjects != null ) { - fRegisterGroups.add( new CRegisterGroup( getDebugTarget(), "Main", regObjects ) ); //$NON-NLS-1$ + for (int i = 0; i < groups.length; ++i) { + fRegisterGroups.add( new CRegisterGroup( getDebugTarget(), groups[i] ) ); //$NON-NLS-1$ } } protected ICDIManager getCDIManager() { - if ( getDebugTarget() != null ) { - return getDebugTarget().getCDISession().getRegisterManager(); - } return null; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java index be0d6252575..6add9c00375 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayValue; import org.eclipse.cdt.debug.core.model.CVariableFormat; import org.eclipse.cdt.debug.core.model.ICType; @@ -34,7 +34,7 @@ public class CArrayPartition extends AbstractCVariable { private int fEnd; - private ICDIVariableObject fCDIVariableObject; + private ICDIVariableDescriptor fCDIVariableObject; private ICDIVariable fCDIVariable; @@ -63,7 +63,7 @@ public class CArrayPartition extends AbstractCVariable { public ICType getType() throws DebugException { if ( fType == null ) { try { - ICDIVariableObject varObject = getVariableObject(); + ICDIVariableDescriptor varObject = getVariableObject(); if ( varObject != null ) fType = new CType( varObject.getType() ); } @@ -238,9 +238,10 @@ public class CArrayPartition extends AbstractCVariable { return false; } - private ICDIVariableObject getVariableObject() throws CDIException { + private ICDIVariableDescriptor getVariableObject() throws CDIException { if ( fCDIVariableObject == null ) { - fCDIVariableObject = getCDISession().getVariableManager().getVariableObjectAsArray( getCDIVariable(), getStart(), getEnd() - getStart() + 1 ); + fCDIVariableObject = getCDIVariable().getVariableDescriptorAsArray(getStart(), getEnd() - getStart() + 1 ); + //fCDIVariableObject = getCDISession().getVariableManager().getVariableObjectAsArray( getCDIVariable(), getStart(), getEnd() - getStart() + 1 ); } return fCDIVariableObject; } 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 79bad3fd0a5..440c9057c57 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 @@ -59,7 +59,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.ICDITarget; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.CDebugElementState; import org.eclipse.cdt.debug.core.model.IBreakpointTarget; import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint; @@ -1872,9 +1872,9 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv } public ICGlobalVariable createGlobalVariable( IGlobalVariableDescriptor info ) throws DebugException { - ICDIVariableObject vo = null; + ICDIVariableDescriptor vo = null; try { - vo = getCDISession().getVariableManager().getGlobalVariableObject( info.getPath().lastSegment(), null, info.getName() ); + vo = getCDITarget().getGlobalVariableDescriptors(info.getPath().lastSegment(), null, info.getName()); } catch( CDIException e ) { throw new DebugException( new Status( IStatus.ERROR, CDIDebugModel.getPluginIdentifier(), DebugException.TARGET_REQUEST_FAILED, (vo != null) ? vo.getName() + ": " + e.getMessage() : e.getMessage(), null ) ); //$NON-NLS-1$ diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java index 23339a7087a..105dcb6a1aa 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CExpression.java @@ -19,7 +19,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIExpression; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.CVariableFormat; import org.eclipse.cdt.debug.core.model.ICStackFrame; import org.eclipse.debug.core.DebugException; @@ -40,7 +40,7 @@ public class CExpression extends CVariable implements IExpression { /** * Constructor for CExpression. */ - public CExpression( CStackFrame frame, ICDIExpression cdiExpression, ICDIVariableObject varObject ) { + public CExpression( CStackFrame frame, ICDIExpression cdiExpression, ICDIVariableDescriptor varObject ) { super( frame, varObject ); setFormat( CVariableFormat.getFormat( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_EXPRESSION_FORMAT ))) ; fCDIExpression = cdiExpression; @@ -146,7 +146,7 @@ public class CExpression extends CVariable implements IExpression { public void dispose() { if ( fCDIExpression != null ) { try { - getCDITarget().destroyExpressions( new ICDIExpression[] { fCDIExpression } ); + fCDIExpression.dispose(); fCDIExpression = null; } catch( CDIException e ) { diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java index c0091893ce9..1ef17d477fc 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CFormattedMemoryBlock.java @@ -385,8 +385,7 @@ public class CFormattedMemoryBlock extends CDebugElement { try { - ICDIExpression[] expressions = { fAddressExpression }; - ((CDebugTarget)getDebugTarget()).getCDITarget().destroyExpressions( expressions ); + fAddressExpression.dispose(); } catch( CDIException e ) { diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java index 2240e765c25..69c7bf64dda 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CGlobalVariable.java @@ -14,7 +14,7 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIResumedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.ICGlobalVariable; import org.eclipse.cdt.debug.core.model.IGlobalVariableDescriptor; @@ -28,7 +28,7 @@ public class CGlobalVariable extends CVariable implements ICGlobalVariable { /** * Constructor for CGlobalVariable. */ - protected CGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableObject cdiVariableObject ) { + protected CGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableDescriptor cdiVariableObject ) { super( parent, cdiVariableObject ); fDescriptor = descriptor; } @@ -36,7 +36,7 @@ public class CGlobalVariable extends CVariable implements ICGlobalVariable { /** * Constructor for CGlobalVariable. */ - protected CGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableObject cdiVariableObject, String message ) { + protected CGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableDescriptor cdiVariableObject, String message ) { super( parent, cdiVariableObject, message ); fDescriptor = descriptor; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java index b1ad016d65c..559f4a58d33 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegister.java @@ -13,8 +13,7 @@ package org.eclipse.cdt.debug.internal.core.model; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.debug.core.ICDebugConstants; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterDescriptor; import org.eclipse.cdt.debug.core.model.CVariableFormat; import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.DebugException; @@ -29,15 +28,15 @@ public class CRegister extends CGlobalVariable implements IRegister { /** * Constructor for CRegister. */ - protected CRegister( CRegisterGroup parent, ICDIRegister cdiRegister ) { - super( parent, null, cdiRegister ); + protected CRegister( CRegisterGroup parent, ICDIRegisterDescriptor cdiRegisterDescriptor ) { + super( parent, null, cdiRegisterDescriptor ); setFormat( CVariableFormat.getFormat( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_REGISTER_FORMAT ) ) ); } /** * Constructor for CRegister. */ - protected CRegister( CRegisterGroup parent, ICDIRegisterObject registerObject, String message ) { + protected CRegister( CRegisterGroup parent, ICDIRegisterDescriptor registerObject, String message ) { super( parent, null, registerObject, message ); setFormat( CVariableFormat.getFormat( CDebugCorePlugin.getDefault().getPluginPreferences().getInt( ICDebugConstants.PREF_DEFAULT_REGISTER_FORMAT ) ) ); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java index fecbaf3aef7..36b66593d8d 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.internal.core.model; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterDescriptor; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; import org.eclipse.cdt.debug.core.model.IEnableDisableTarget; import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugException; @@ -24,9 +24,7 @@ import org.eclipse.debug.core.model.IRegisterGroup; */ public class CRegisterGroup extends CDebugElement implements IRegisterGroup, IEnableDisableTarget { - private String fName; - - private ICDIRegisterObject[] fRegisterObjects; + private ICDIRegisterGroup fCDIRegisterGroup; private IRegister[] fRegisters; @@ -35,35 +33,34 @@ public class CRegisterGroup extends CDebugElement implements IRegisterGroup, IEn /** * Constructor for CRegisterGroup. */ - public CRegisterGroup( CDebugTarget target, String name, ICDIRegisterObject[] regObjects ) { + public CRegisterGroup( CDebugTarget target, ICDIRegisterGroup regGroup ) { super( target ); - fName = name; - fRegisterObjects = regObjects; - fRegisters = new IRegister[regObjects.length]; + fCDIRegisterGroup = regGroup; } /* (non-Javadoc) * @see org.eclipse.debug.core.model.IRegisterGroup#getName() */ public String getName() throws DebugException { - return fName; + return fCDIRegisterGroup.getName(); } /* (non-Javadoc) * @see org.eclipse.debug.core.model.IRegisterGroup#getRegisters() */ public IRegister[] getRegisters() throws DebugException { - for ( int i = 0; i < fRegisters.length; ++i ) { - if ( fRegisters[i] == null ) { - try { - fRegisters[i] = new CRegister( this, getCDIRegister( fRegisterObjects[i] ) ); - } - catch( DebugException e ) { - fRegisters[i] = new CRegister( this, fRegisterObjects[i], e.getMessage() ); - } - if ( ((CRegister)fRegisters[i]).isEnabled() ) { - ((CRegister)fRegisters[i]).setEnabled( isEnabled() ); + if (fRegisters == null) { + try { + ICDIRegisterDescriptor[] regDescs = fCDIRegisterGroup.getRegisterDescriptors(); + fRegisters = new IRegister[regDescs.length]; + for ( int i = 0; i < fRegisters.length; ++i ) { + fRegisters[i] = new CRegister( this, regDescs[i] ); + if ( ((CRegister)fRegisters[i]).isEnabled() ) { + ((CRegister)fRegisters[i]).setEnabled( isEnabled() ); + } } + } catch (CDIException e) { + requestFailed( e.getMessage(), null ); } } return fRegisters; @@ -73,10 +70,13 @@ public class CRegisterGroup extends CDebugElement implements IRegisterGroup, IEn * @see org.eclipse.debug.core.model.IRegisterGroup#hasRegisters() */ public boolean hasRegisters() throws DebugException { - return fRegisterObjects.length > 0; + return getRegisters().length > 0; } public void dispose() { + if (fRegisters == null) { + return; + } for ( int i = 0; i < fRegisters.length; ++i ) { if ( fRegisters[i] != null ) { ((CRegister)fRegisters[i]).dispose(); @@ -85,18 +85,10 @@ public class CRegisterGroup extends CDebugElement implements IRegisterGroup, IEn } } - private ICDIRegister getCDIRegister( ICDIRegisterObject ro ) throws DebugException { - ICDIRegister register = null; - try { - register = ((CDebugTarget)getDebugTarget()).getCDISession().getRegisterManager().createRegister( ro ); - } - catch( CDIException e ) { - requestFailed( e.getMessage(), null ); - } - return register; - } - public void targetSuspended() { + if (fRegisters == null) { + return; + } for ( int i = 0; i < fRegisters.length; ++i ) { if ( fRegisters[i] != null && ((CRegister)fRegisters[i]).hasErrors() ) { ((CRegister)fRegisters[i]).dispose(); diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java index cf009f431b4..8d6690edd4d 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java @@ -25,7 +25,7 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener; import org.eclipse.cdt.debug.core.cdi.model.ICDIExpression; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.ICGlobalVariable; import org.eclipse.cdt.debug.core.model.ICStackFrame; import org.eclipse.cdt.debug.core.model.IRestart; @@ -116,7 +116,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart fVariables = new ArrayList( vars.size() ); Iterator it = vars.iterator(); while( it.hasNext() ) { - fVariables.add( CVariableFactory.createVariable( this, (ICDIVariableObject)it.next() ) ); + fVariables.add( CVariableFactory.createVariable( this, (ICDIVariableDescriptor)it.next() ) ); } } else if ( refreshVariables() ) { @@ -134,7 +134,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart List locals = getAllCDIVariableObjects(); int index = 0; while( index < fVariables.size() ) { - ICDIVariableObject varObject = findVariable( locals, (CVariable)fVariables.get( index ) ); + ICDIVariableDescriptor varObject = findVariable( locals, (CVariable)fVariables.get( index ) ); if ( varObject != null ) { locals.remove( varObject ); index++; @@ -147,7 +147,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart // add any new locals Iterator newOnes = locals.iterator(); while( newOnes.hasNext() ) { - fVariables.add( CVariableFactory.createVariable( this, (ICDIVariableObject)newOnes.next() ) ); + fVariables.add( CVariableFactory.createVariable( this, (ICDIVariableDescriptor)newOnes.next() ) ); } } @@ -489,7 +489,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart protected List getCDILocalVariableObjects() throws DebugException { List list = new ArrayList(); try { - list.addAll( Arrays.asList( getCDISession().getVariableManager().getLocalVariableObjects( getCDIStackFrame() ) ) ); + list.addAll( Arrays.asList( getCDIStackFrame().getLocalVariableDescriptors( ) ) ); } catch( CDIException e ) { targetRequestFailed( e.getMessage(), null ); @@ -504,7 +504,7 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart protected List getCDIArgumentObjects() throws DebugException { List list = new ArrayList(); try { - list.addAll( Arrays.asList( getCDISession().getVariableManager().getArgumentObjects( getCDIStackFrame() ) ) ); + list.addAll( Arrays.asList( getCDIStackFrame().getArgumentDescriptors() ) ); } catch( CDIException e ) { targetRequestFailed( e.getMessage(), null ); @@ -607,10 +607,10 @@ public class CStackFrame extends CDebugElement implements ICStackFrame, IRestart } } - protected ICDIVariableObject findVariable( List list, CVariable var ) { + protected ICDIVariableDescriptor findVariable( List list, CVariable var ) { Iterator it = list.iterator(); while( it.hasNext() ) { - ICDIVariableObject newVarObject = (ICDIVariableObject)it.next(); + ICDIVariableDescriptor newVarObject = (ICDIVariableDescriptor)it.next(); if ( var.sameVariable( newVarObject ) ) return newVarObject; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java index 339b0bcf941..4ae4387b4d8 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java @@ -33,6 +33,7 @@ import org.eclipse.cdt.debug.core.cdi.model.type.ICDIShortValue; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIWCharValue; import org.eclipse.cdt.debug.core.model.CVariableFormat; import org.eclipse.cdt.debug.core.model.ICDebugElementStatus; +import org.eclipse.cdt.debug.core.model.ICStackFrame; import org.eclipse.cdt.debug.core.model.ICType; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IVariable; @@ -85,7 +86,9 @@ public class CValue extends AbstractCValue { public String getValueString() throws DebugException { if ( fValueString == null && getUnderlyingValue() != null ) { resetStatus(); - if ( getParentVariable().getStackFrame().isSuspended() ) { + ICStackFrame cframe = getParentVariable().getStackFrame(); + boolean isSuspended = (cframe == null) ? getCDITarget().isSuspended() : cframe.isSuspended(); + if ( isSuspended ) { try { fValueString = processUnderlyingValue( getUnderlyingValue() ); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java index 2f87af0e579..83144f9d592 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java @@ -19,12 +19,12 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener; import org.eclipse.cdt.debug.core.cdi.event.ICDIResumedEvent; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentDescriptor; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.CVariableFormat; import org.eclipse.cdt.debug.core.model.ICDebugElementStatus; import org.eclipse.cdt.debug.core.model.ICType; @@ -52,7 +52,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { /** * The CDI variable object this variable is based on. */ - private ICDIVariableObject fCDIVariableObject; + private ICDIVariableDescriptor fCDIVariableObject; /** * The underlying CDI variable. @@ -82,7 +82,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { /** * Constructor for InternalVariable. */ - InternalVariable( CVariable var, ICDIVariableObject varObject ) { + InternalVariable( CVariable var, ICDIVariableDescriptor varObject ) { setVariable( var ); setCDIVariableObject( varObject ); setCDIVariable( (varObject instanceof ICDIVariable) ? (ICDIVariable)varObject : null ); @@ -91,7 +91,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { InternalVariable createShadow( int start, int length ) throws DebugException { InternalVariable iv = null; try { - iv = new InternalVariable( getVariable(), getCDISession().getVariableManager().getVariableObjectAsArray( getCDIVariableObject(), start, length ) ); + iv = new InternalVariable( getVariable(), getCDIVariableObject().getVariableDescriptorAsArray( start, length ) ); } catch( CDIException e ) { requestFailed( e.getMessage(), null ); @@ -102,7 +102,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { InternalVariable createShadow( String type ) throws DebugException { InternalVariable iv = null; try { - iv = new InternalVariable( getVariable(), getCDISession().getVariableManager().getVariableObjectAsType( getCDIVariableObject(), type ) ); + iv = new InternalVariable( getVariable(), getCDIVariableObject().getVariableDescriptorAsType( type ) ); } catch( CDIException e ) { requestFailed( e.getMessage(), null ); @@ -113,10 +113,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { private synchronized ICDIVariable getCDIVariable() throws DebugException { if ( fCDIVariable == null ) { try { - if ( getCDIVariableObject() instanceof ICDIArgumentObject ) - fCDIVariable = getCDISession().getVariableManager().createArgument( (ICDIArgumentObject)getCDIVariableObject() ); - else - fCDIVariable = getCDISession().getVariableManager().createVariable( getCDIVariableObject() ); + fCDIVariable = getCDIVariableObject().createVariable( ); } catch( CDIException e ) { requestFailed( e.getMessage(), null ); @@ -129,11 +126,11 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { fCDIVariable = variable; } - private ICDIVariableObject getCDIVariableObject() { + private ICDIVariableDescriptor getCDIVariableObject() { return fCDIVariableObject; } - private void setCDIVariableObject( ICDIVariableObject variableObject ) { + private void setCDIVariableObject( ICDIVariableDescriptor variableObject ) { fCDIVariableObject = variableObject; } @@ -151,7 +148,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { CType getType() throws DebugException { if ( fType == null ) { - ICDIVariableObject varObject = getCDIVariableObject(); + ICDIVariableDescriptor varObject = getCDIVariableObject(); if ( varObject != null ) { synchronized( this ) { if ( fType == null ) { @@ -171,7 +168,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { synchronized void invalidate() { try { if ( fCDIVariable != null ) - getCDISession().getVariableManager().destroyVariable( fCDIVariable ); + fCDIVariable.dispose(); } catch( CDIException e ) { logError( e.getMessage() ); @@ -203,7 +200,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { } boolean isArgument() { - return ( getCDIVariableObject() instanceof ICDIArgumentObject ); + return ( getCDIVariableObject() instanceof ICDIArgumentDescriptor ); } void setValue( String expression ) throws DebugException { @@ -308,7 +305,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { return false; } - boolean sameVariable( ICDIVariableObject vo ) { + boolean sameVariable( ICDIVariableDescriptor vo ) { return getCDIVariableObject().equals( vo ); } } @@ -341,7 +338,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { /** * Constructor for CVariable. */ - protected CVariable( CDebugElement parent, ICDIVariableObject cdiVariableObject ) { + protected CVariable( CDebugElement parent, ICDIVariableDescriptor cdiVariableObject ) { super( parent ); if ( cdiVariableObject != null ) { fName = cdiVariableObject.getName(); @@ -354,7 +351,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { /** * Constructor for CVariable. */ - protected CVariable( CDebugElement parent, ICDIVariableObject cdiVariableObject, String errorMessage ) { + protected CVariable( CDebugElement parent, ICDIVariableDescriptor cdiVariableObject, String errorMessage ) { super( parent ); if ( cdiVariableObject != null ) { fName = cdiVariableObject.getName(); @@ -724,7 +721,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { return result; } - private void createOriginal( ICDIVariableObject vo ) { + private void createOriginal( ICDIVariableDescriptor vo ) { if ( vo != null ) fName = vo.getName(); setOriginal( new InternalVariable( this, vo ) ); @@ -784,7 +781,7 @@ public class CVariable extends AbstractCVariable implements ICDIEventListener { return false; } - protected boolean sameVariable( ICDIVariableObject vo ) { + protected boolean sameVariable( ICDIVariableDescriptor vo ) { InternalVariable iv = getOriginal(); return ( iv != null && iv.sameVariable( vo ) ); } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariableFactory.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariableFactory.java index f472cf08403..2512b5266c8 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariableFactory.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariableFactory.java @@ -16,7 +16,7 @@ import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; import org.eclipse.cdt.core.IBinaryParser.ISymbol; import org.eclipse.cdt.core.model.IBinaryModule; import org.eclipse.cdt.core.model.ICElement; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.model.IGlobalVariableDescriptor; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; @@ -26,11 +26,11 @@ import org.eclipse.core.runtime.Path; */ public class CVariableFactory { - public static CVariable createVariable( CDebugElement parent, ICDIVariableObject cdiVariableObject ) { + public static CVariable createVariable( CDebugElement parent, ICDIVariableDescriptor cdiVariableObject ) { return new CVariable( parent, cdiVariableObject ); } - public static CVariable createVariableWithError( CDebugElement parent, ICDIVariableObject cdiVariableObject, String message ) { + public static CVariable createVariableWithError( CDebugElement parent, ICDIVariableDescriptor cdiVariableObject, String message ) { return new CVariable( parent, cdiVariableObject, message ); } @@ -69,7 +69,7 @@ public class CVariableFactory { } - public static CGlobalVariable createGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableObject cdiVariableObject ) { + public static CGlobalVariable createGlobalVariable( CDebugElement parent, IGlobalVariableDescriptor descriptor, ICDIVariableDescriptor cdiVariableObject ) { return new CGlobalVariable( parent, descriptor, cdiVariableObject ); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index ae2f82255d6..70ad1e27c39 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,13 @@ +2004-10-31 Alain Magloire + Refactor ICDIVariableObject --> ICDIVariableDescriptor + Refactor ICDIArgumentObject --> ICDIArgumentDescriptor + Refactor ICDIRegisterObject --> ICDIRegisterDescriptor + Addition ICDIThreadStorageDescriptor, ICDIThreadStorage + Addition ICDILocalVariableDescriptor, ICDILocalVariable + Addition ICDIGlobalVariableDescriptor, ICDIGlovalVariable + + Adjust the classes to the changes. + 2004-10-29 Alain Magloire Remove of ICDISharedLibraryManager * cdi/org/eclipse/cdt/debug/core/cdi/Session.java diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java index 2f017c6ade9..45c3a7d1c4d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java @@ -23,7 +23,6 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener; import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.event.ChangedEvent; @@ -149,7 +148,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs // Something change we do not know what // Let the signal manager handle it with an update(). try { - SignalManager sMgr = (SignalManager)session.getSignalManager(); + SignalManager sMgr = session.getSignalManager(); sMgr.update(currentTarget); } catch (CDIException e) { } @@ -265,12 +264,6 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs Session session = (Session)getSession(); MISession miSession = stopped.getMISession(); Target currentTarget = session.getTarget(miSession); - try { - session.setCurrentTarget(currentTarget); - } catch (CDIException e) { - //TODO: Should not ignore this. - } - if (processSharedLibEvent(stopped)) { // Event was consumed by the shared lib processing bailout return false; @@ -284,7 +277,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs int threadId = threadId = stopped.getThreadId(); currentTarget.updateState(threadId); try { - ICDIThread cthread = currentTarget.getCurrentThread(); + Thread cthread = (Thread)currentTarget.getCurrentThread(); if (cthread != null) { cthread.getCurrentStackFrame(); } else { @@ -297,14 +290,14 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs // Update the managers. // For the Variable/Expression Managers call only the updateManager. - VariableManager varMgr = (VariableManager)session.getVariableManager(); + VariableManager varMgr = session.getVariableManager(); ExpressionManager expMgr = session.getExpressionManager(); - RegisterManager regMgr = (RegisterManager)session.getRegisterManager(); + RegisterManager regMgr = session.getRegisterManager(); MemoryManager memMgr = session.getMemoryManager(); BreakpointManager bpMgr = session.getBreakpointManager(); - SignalManager sigMgr = (SignalManager)session.getSignalManager(); - SourceManager srcMgr = (SourceManager)session.getSourceManager(); - SharedLibraryManager libMgr = (SharedLibraryManager)session.getSharedLibraryManager(); + SignalManager sigMgr = session.getSignalManager(); + SourceManager srcMgr = session.getSourceManager(); + SharedLibraryManager libMgr = session.getSharedLibraryManager(); try { if (varMgr.isAutoUpdate()) { varMgr.update(currentTarget); @@ -434,14 +427,12 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs int miLevel = 0; int tid = 0; - ICDIThread currentThread = null; + Thread currentThread = null; try { - currentThread = currentTarget.getCurrentThread(); + currentThread = (Thread)currentTarget.getCurrentThread(); } catch (CDIException e1) { } - if (currentThread instanceof Thread) { - tid = ((Thread)currentThread).getId(); - } + tid = currentThread.getId(); // Select the old thread now. if (tid > 0) { MIThreadSelect selectThread = factory.createMIThreadSelect(tid); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java index 4e1a491bda3..b421ed8f75c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java @@ -18,14 +18,14 @@ import java.util.Map; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIExpression; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.model.Expression; +import org.eclipse.cdt.debug.mi.core.cdi.model.LocalVariable; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; +import org.eclipse.cdt.debug.mi.core.cdi.model.Thread; import org.eclipse.cdt.debug.mi.core.cdi.model.Variable; -import org.eclipse.cdt.debug.mi.core.cdi.model.VariableObject; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIVarCreate; import org.eclipse.cdt.debug.mi.core.command.MIVarDelete; @@ -151,12 +151,12 @@ public class ExpressionManager extends Manager { return null; } - public Variable createVariable(ICDIStackFrame frame, String code) throws CDIException { + public Variable createVariable(StackFrame frame, String code) throws CDIException { Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); try { MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -166,8 +166,7 @@ public class ExpressionManager extends Manager { if (info == null) { throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } - VariableObject varObj = new VariableObject(target, code, frame, 0, 0); - Variable variable = new Variable(varObj, info.getMIVar()); + Variable variable = new LocalVariable(target, null, frame, code, null, 0, 0, info.getMIVar()); variableList.add(variable); return variable; } catch (MIException e) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java index 1616ddd1dae..a96d99a6227 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Manager.java @@ -12,7 +12,6 @@ package org.eclipse.cdt.debug.mi.core.cdi; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDIManager; import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; @@ -21,7 +20,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.model.Target; * Manager * */ -public abstract class Manager extends SessionObject implements ICDIManager { +public abstract class Manager extends SessionObject { boolean autoUpdate; diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java index 77e175c245e..55577763a82 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java @@ -19,7 +19,6 @@ public class ProcessManager extends Manager { static final Target[] EMPTY_TARGETS = new Target[0]; Vector debugTargetList; - Target currentTarget; public ProcessManager(Session session) { super(session, true); @@ -37,7 +36,7 @@ public class ProcessManager extends Manager { return (ICDITarget[]) debugTargetList.toArray(new ICDITarget[debugTargetList.size()]); } - public void addTargets(Target[] targets, Target current) { + public void addTargets(Target[] targets) { EventManager eventManager = (EventManager)getSession().getEventManager(); for (int i = 0; i < targets.length; ++i) { Target target = targets[i]; @@ -50,9 +49,6 @@ public class ProcessManager extends Manager { } } } - if (current != null && debugTargetList.contains(current)) { - currentTarget = current; - } debugTargetList.trimToSize(); } @@ -64,9 +60,6 @@ public class ProcessManager extends Manager { if (miSession != null) { miSession.deleteObserver(eventManager); } - if (currentTarget != null && currentTarget.equals(target)) { - currentTarget = null; - } debugTargetList.remove(target); } debugTargetList.trimToSize(); @@ -86,20 +79,6 @@ public class ProcessManager extends Manager { return null; } - /** - * @return - */ - public Target getCurrentTarget() { - return currentTarget; - } - - /** - * @param current - */ - public void setCurrentTarget(Target current) { - currentTarget = current; - } - public void update(Target target) throws CDIException { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java index a82a8e38e5f..e2a412a8ec0 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/RegisterManager.java @@ -17,13 +17,13 @@ import java.util.List; import java.util.Map; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDIRegisterManager; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterDescriptor; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.model.Register; -import org.eclipse.cdt.debug.mi.core.cdi.model.RegisterObject; +import org.eclipse.cdt.debug.mi.core.cdi.model.RegisterDescriptor; +import org.eclipse.cdt.debug.mi.core.cdi.model.RegisterGroup; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIDataListChangedRegisters; @@ -35,14 +35,13 @@ import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent; import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent; import org.eclipse.cdt.debug.mi.core.output.MIDataListChangedRegistersInfo; import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo; -import org.eclipse.cdt.debug.mi.core.output.MIVar; import org.eclipse.cdt.debug.mi.core.output.MIVarChange; import org.eclipse.cdt.debug.mi.core.output.MIVarCreateInfo; import org.eclipse.cdt.debug.mi.core.output.MIVarUpdateInfo; /** */ -public class RegisterManager extends Manager implements ICDIRegisterManager { +public class RegisterManager extends Manager { Map regsMap; MIVarChange[] noChanges = new MIVarChange[0]; @@ -60,14 +59,17 @@ public class RegisterManager extends Manager implements ICDIRegisterManager { } return regsList; } - /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getRegisterObjects() - */ - public ICDIRegisterObject[] getRegisterObjects() throws CDIException { - Target target = ((Session)getSession()).getCurrentTarget(); - return getRegisterObjects(target); + + public ICDIRegisterGroup[] getRegisterGroups(Target target) throws CDIException { + RegisterGroup group = new RegisterGroup(target, "Main"); //$NON-NLS-1$ + return new ICDIRegisterGroup[] { group }; } - public ICDIRegisterObject[] getRegisterObjects(Target target) throws CDIException { + + public ICDIRegisterDescriptor[] getRegisterDescriptors(RegisterGroup group) throws CDIException { + Target target = (Target)group.getTarget(); + return getRegisterDescriptors(target); + } + public ICDIRegisterDescriptor[] getRegisterDescriptors(Target target) throws CDIException { Session session = (Session)getSession(); MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -83,66 +85,42 @@ public class RegisterManager extends Manager implements ICDIRegisterManager { List regsList = new ArrayList(names.length); for (int i = 0; i < names.length; i++) { if (names[i].length() > 0) { - regsList.add(new RegisterObject(target, names[i], i)); + regsList.add(new RegisterDescriptor(target, null, null, names[i], null, i, 0)); } } - return (ICDIRegisterObject[])regsList.toArray(new ICDIRegisterObject[0]); + return (ICDIRegisterDescriptor[])regsList.toArray(new ICDIRegisterDescriptor[0]); } catch (MIException e) { throw new MI2CDIException(e); } finally { } } - /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#createRegister() - */ - public ICDIRegister createRegister(ICDIRegisterObject regObject) throws CDIException { - RegisterObject regObj = null; - if (regObject instanceof RegisterObject) { - regObj = (RegisterObject)regObject; - } - if (regObj != null) { - Register reg = getRegister(regObject); - if (reg == null) { - try { - String name = "$" + regObj.getName(); //$NON-NLS-1$ - Target target = (Target)regObj.getTarget(); - MISession mi = target.getMISession(); - CommandFactory factory = mi.getCommandFactory(); - MIVarCreate var = factory.createMIVarCreate(name); - mi.postCommand(var); - MIVarCreateInfo info = var.getMIVarCreateInfo(); - if (info == null) { - throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ - } - reg = new Register(regObj, info.getMIVar()); - List regList = getRegistersList(target); - regList.add(reg); - } catch (MIException e) { - throw new MI2CDIException(e); + public Register createRegister(RegisterDescriptor regDesc) throws CDIException { + Register reg = getRegister(regDesc); + if (reg == null) { + try { + String name = "$" + regDesc.getName(); //$NON-NLS-1$ + Target target = (Target)regDesc.getTarget(); + MISession mi = target.getMISession(); + CommandFactory factory = mi.getCommandFactory(); + MIVarCreate var = factory.createMIVarCreate(name); + mi.postCommand(var); + MIVarCreateInfo info = var.getMIVarCreateInfo(); + if (info == null) { + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } + reg = new Register(regDesc, info.getMIVar()); + List regList = getRegistersList(target); + regList.add(reg); + } catch (MIException e) { + throw new MI2CDIException(e); } - return reg; } - throw new CDIException(CdiResources.getString("cdi.RegisterManager.Wrong_register_type")); //$NON-NLS-1$ - } - - public Register createRegister(RegisterObject v, MIVar mivar) throws CDIException { - Register reg = new Register(v, mivar); - Target target = (Target)v.getTarget(); - List regList = (List) regsMap.get(target); - if (regList == null) { - regList = Collections.synchronizedList(new ArrayList()); - regsMap.put(target, regList); - } - regList.add(reg); return reg; + //throw new CDIException(CdiResources.getString("cdi.RegisterManager.Wrong_register_type")); //$NON-NLS-1$ } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIRegisterManager#destroyRegister(ICDIRegister) - */ - public void destroyRegister(ICDIRegister reg) { + public void destroyRegister(Register reg) { Target target = (Target)reg.getTarget(); List regList = (List)regsMap.get(target); if (regList != null) { @@ -248,13 +226,11 @@ public class RegisterManager extends Manager implements ICDIRegisterManager { } return new Register[0]; } - - - private Register getRegister(ICDIRegisterObject regObject) throws CDIException { - Register[] regs = getRegisters((Target)regObject.getTarget()); + private Register getRegister(RegisterDescriptor regDesc) throws CDIException { + Register[] regs = getRegisters((Target)regDesc.getTarget()); for (int i = 0; i < regs.length; i++) { - if (regObject.getName().equals(regs[i].getName())) { + if (regDesc.getName().equals(regs[i].getName())) { return regs[i]; } } 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 e1f922da10c..3239fd59c9a 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 @@ -16,10 +16,8 @@ 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.ICDIEventManager; -import org.eclipse.cdt.debug.core.cdi.ICDIRegisterManager; import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.core.cdi.ICDISessionObject; -import org.eclipse.cdt.debug.core.cdi.ICDIVariableManager; import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.mi.core.MIException; @@ -53,7 +51,7 @@ public class Session implements ICDISession, ICDISessionObject { setConfiguration(new Configuration(miSession, attach)); Target target = new Target(this, miSession); - addTargets(new Target[] { target }, target); + addTargets(new Target[] { target }); } public Session(MISession miSession) { @@ -61,7 +59,7 @@ public class Session implements ICDISession, ICDISessionObject { setConfiguration(new CoreFileConfiguration()); Target target = new Target(this, miSession); - addTargets(new Target[] { target }, target); + addTargets(new Target[] { target }); } public Session() { @@ -84,9 +82,9 @@ public class Session implements ICDISession, ICDISessionObject { sharedLibraryManager = new SharedLibraryManager(this); } - public void addTargets(Target[] targets, Target current) { + public void addTargets(Target[] targets) { ProcessManager pMgr = getProcessManager(); - pMgr.addTargets(targets, current); + pMgr.addTargets(targets); } public void removeTargets(Target[] targets) { @@ -99,15 +97,6 @@ public class Session implements ICDISession, ICDISessionObject { return pMgr.getTarget(miSession); } - /** - * @deprecated - * @return - */ - public Target getCurrentTarget() { - ProcessManager pMgr = getProcessManager(); - return pMgr.getCurrentTarget(); - } - /** * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getAttribute(String) */ @@ -119,9 +108,6 @@ public class Session implements ICDISession, ICDISessionObject { return processManager; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getBreakpointManager() - */ public BreakpointManager getBreakpointManager() { return breakpointManager; } @@ -133,24 +119,15 @@ public class Session implements ICDISession, ICDISessionObject { return eventManager; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getExpressionManager() - */ public ExpressionManager getExpressionManager() { return expressionManager; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getVariableManager() - */ - public ICDIVariableManager getVariableManager() { + public VariableManager getVariableManager() { return variableManager; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getRegisterManager() - */ - public ICDIRegisterManager getRegisterManager() { + public RegisterManager getRegisterManager() { return registerManager; } @@ -179,15 +156,6 @@ public class Session implements ICDISession, ICDISessionObject { } /** - * @deprecated - * @see org.eclipse.cdt.debug.core.cdi.ICDISession#setCurrentTarget() - */ - public void setCurrentTarget(Target target) throws CDIException { - ProcessManager pMgr = getProcessManager(); - pMgr.setCurrentTarget(target); - } - - /** * @see org.eclipse.cdt.debug.core.cdi.ICDISession#setAttribute(String, String) */ public void setAttribute(String key, String value) { @@ -262,7 +230,11 @@ public class Session implements ICDISession, ICDISessionObject { * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getSessionProcess() */ public Process getSessionProcess() throws CDIException { - return getSessionProcess(getCurrentTarget()); + ICDITarget[] targets = getTargets(); + if (targets != null && targets.length > 0) { + return getSessionProcess(targets[0]); + } + return null; } public Process getSessionProcess(ICDITarget target) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java index 6e98e10e0b5..70baa63d93c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java @@ -16,8 +16,6 @@ import java.util.StringTokenizer; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIInstruction; import org.eclipse.cdt.debug.core.cdi.model.ICDIMixedInstruction; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.mi.core.GDBTypeParser; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; @@ -25,7 +23,9 @@ import org.eclipse.cdt.debug.mi.core.GDBTypeParser.GDBDerivedType; import org.eclipse.cdt.debug.mi.core.GDBTypeParser.GDBType; import org.eclipse.cdt.debug.mi.core.cdi.model.Instruction; import org.eclipse.cdt.debug.mi.core.cdi.model.MixedInstruction; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; +import org.eclipse.cdt.debug.mi.core.cdi.model.Thread; import org.eclipse.cdt.debug.mi.core.cdi.model.type.ArrayType; import org.eclipse.cdt.debug.mi.core.cdi.model.type.BoolType; import org.eclipse.cdt.debug.mi.core.cdi.model.type.CharType; @@ -184,7 +184,7 @@ public class SourceManager extends Manager { public void update(Target target) throws CDIException { } - public Type getType(ICDIStackFrame frame, String name) throws CDIException { + public Type getType(StackFrame frame, String name) throws CDIException { if (name == null) { name = new String(); } @@ -234,7 +234,7 @@ public class SourceManager extends Manager { throw new CDIException(CdiResources.getString("cdi.SourceManager.Unknown_type")); //$NON-NLS-1$ } - Type toCDIType(ICDIStackFrame frame, String name) throws CDIException { + Type toCDIType(StackFrame frame, String name) throws CDIException { // Check the derived types and agregate types if (name == null) { name = new String(); @@ -399,13 +399,13 @@ public class SourceManager extends Manager { throw new CDIException(CdiResources.getString("cdi.SourceManager.Unknown_type")); //$NON-NLS-1$ } - public String getDetailTypeName(ICDIStackFrame frame, String typename) throws CDIException { + public String getDetailTypeName(StackFrame frame, String typename) throws CDIException { Session session = (Session)getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); try { MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -424,16 +424,16 @@ public class SourceManager extends Manager { } } - public String getTypeName(ICDIStackFrame frame, String variable) throws CDIException { + public String getTypeName(StackFrame frame, String variable) throws CDIException { Session session = (Session)getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = null; - ICDIStackFrame currentFrame = null; + Thread currentThread = null; + StackFrame currentFrame = null; if (frame != null) { - currentThread = target.getCurrentThread(); + currentThread = (Thread)target.getCurrentThread(); currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); } try { MISession mi = target.getMISession(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java index 613117367bb..50066ce31b2 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java @@ -17,21 +17,29 @@ import java.util.List; import java.util.Map; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDIVariableManager; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgument; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentDescriptor; +import org.eclipse.cdt.debug.core.cdi.model.ICDILocalVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; +import org.eclipse.cdt.debug.core.cdi.model.ICDIThreadStorageDescriptor; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.model.Argument; -import org.eclipse.cdt.debug.mi.core.cdi.model.ArgumentObject; +import org.eclipse.cdt.debug.mi.core.cdi.model.ArgumentDescriptor; +import org.eclipse.cdt.debug.mi.core.cdi.model.GlobalVariable; +import org.eclipse.cdt.debug.mi.core.cdi.model.GlobalVariableDescriptor; +import org.eclipse.cdt.debug.mi.core.cdi.model.LocalVariable; +import org.eclipse.cdt.debug.mi.core.cdi.model.LocalVariableDescriptor; +import org.eclipse.cdt.debug.mi.core.cdi.model.Register; +import org.eclipse.cdt.debug.mi.core.cdi.model.RegisterDescriptor; import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; +import org.eclipse.cdt.debug.mi.core.cdi.model.Thread; +import org.eclipse.cdt.debug.mi.core.cdi.model.ThreadStorage; +import org.eclipse.cdt.debug.mi.core.cdi.model.ThreadStorageDescriptor; import org.eclipse.cdt.debug.mi.core.cdi.model.Variable; -import org.eclipse.cdt.debug.mi.core.cdi.model.VariableObject; +import org.eclipse.cdt.debug.mi.core.cdi.model.VariableDescriptor; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIPType; import org.eclipse.cdt.debug.mi.core.command.MIStackListArguments; @@ -54,7 +62,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarUpdateInfo; /** */ -public class VariableManager extends Manager implements ICDIVariableManager { +public class VariableManager extends Manager { static final ICDIVariable[] EMPTY_VARIABLES = {}; // We put a restriction on how deep we want to @@ -101,12 +109,13 @@ public class VariableManager extends Manager implements ICDIVariableManager { } /** - * Return the Element with this stackframe, and with this name. + * Return the Element with this thread/stackframe, and with this name. * null is return if the element is not in the cache. */ - Variable findVariable(VariableObject v) throws CDIException { + Variable findVariable(VariableDescriptor v) throws CDIException { Target target = (Target)v.getTarget(); - ICDIStackFrame stack = v.getStackFrame(); + ICDIStackFrame vstack = v.getStackFrame(); + ICDIThread vthread = v.getThread(); String name = v.getName(); int position = v.getPosition(); int depth = v.getStackDepth(); @@ -119,13 +128,19 @@ public class VariableManager extends Manager implements ICDIVariableManager { || (vars[i].getCastingType() != null && v.getCastingType() != null && vars[i].getCastingType().equals(v.getCastingType())))) { - ICDIStackFrame frame = vars[i].getStackFrame(); - if (stack == null && frame == null) { - return vars[i]; - } else if (frame != null && stack != null && frame.equals(stack)) { - if (vars[i].getPosition() == position) { - if (vars[i].getStackDepth() == depth) { - return vars[i]; + // check threads + ICDIThread thread = vars[i].getThread(); + if ((vthread == null && thread == null) || + (vthread != null && thread != null && thread.equals(vthread))) { + // check stackframes + ICDIStackFrame frame = vars[i].getStackFrame(); + if (vstack == null && frame == null) { + return vars[i]; + } else if (frame != null && vstack != null && frame.equals(vstack)) { + if (vars[i].getPosition() == position) { + if (vars[i].getStackDepth() == depth) { + return vars[i]; + } } } } @@ -152,10 +167,10 @@ public class VariableManager extends Manager implements ICDIVariableManager { if (type != null && type.length() > 0) { Session session = (Session)getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); try { MISession miSession = target.getMISession(); CommandFactory factory = miSession.getCommandFactory(); @@ -212,76 +227,138 @@ public class VariableManager extends Manager implements ICDIVariableManager { } } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#createArgument(ICDIArgumentObject) - */ - public ICDIArgument createArgument(ICDIArgumentObject a) throws CDIException { - ArgumentObject argObj = null; - if (a instanceof ArgumentObject) { - argObj = (ArgumentObject) a; + public VariableDescriptor getVariableDescriptorAsArray(VariableDescriptor varDesc, int start, int length) + throws CDIException { + Target target = (Target)varDesc.getTarget(); + Thread thread = (Thread)varDesc.getThread(); + StackFrame frame = (StackFrame)varDesc.getStackFrame(); + String name = varDesc.getName(); + String fullName = varDesc.getFullName(); + int pos = varDesc.getPosition(); + int depth = varDesc.getStackDepth(); + VariableDescriptor vo = null; + + if (varDesc instanceof ArgumentDescriptor || varDesc instanceof Argument) { + vo = new ArgumentDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof LocalVariableDescriptor || varDesc instanceof LocalVariable) { + vo = new LocalVariableDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof GlobalVariableDescriptor || varDesc instanceof GlobalVariable) { + vo = new GlobalVariableDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof RegisterDescriptor || varDesc instanceof Register) { + vo = new RegisterDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof ThreadStorageDescriptor || varDesc instanceof ThreadStorage) { + vo = new ThreadStorageDescriptor(target, thread, frame, name, fullName, pos, depth); + } else { + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ } - if (argObj != null) { - Variable variable = findVariable(argObj); - Argument argument = null; - if (variable != null && variable instanceof Argument) { - argument = (Argument) variable; - } - if (argument == null) { - String name = argObj.getQualifiedName(); - ICDIStackFrame stack = argObj.getStackFrame(); - Session session = (Session) getSession(); - ICDIThread currentThread = null; - ICDIStackFrame currentFrame = null; - Target target = (Target)argObj.getTarget(); - if (stack != null) { - currentThread = target.getCurrentThread(); - currentFrame = currentThread.getCurrentStackFrame(); - target.setCurrentThread(stack.getThread(), false); - stack.getThread().setCurrentStackFrame(stack, false); - } - try { - MISession mi = target.getMISession(); - CommandFactory factory = mi.getCommandFactory(); - MIVarCreate var = factory.createMIVarCreate(name); - mi.postCommand(var); - MIVarCreateInfo info = var.getMIVarCreateInfo(); - if (info == null) { - throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ - } - argument = new Argument(argObj, info.getMIVar()); - List variablesList = getVariablesList(target); - variablesList.add(argument); - } catch (MIException e) { - throw new MI2CDIException(e); - } finally { - if (currentThread != null) { - target.setCurrentThread(currentThread, false); - currentThread.setCurrentStackFrame(currentFrame, false); - } - } - } - return argument; - } - throw new CDIException(CdiResources.getString("cdi.VariableManager.Wrong_variable_type")); //$NON-NLS-1$ + + vo.setCastingArrayStart(varDesc.getCastingArrayStart() + start); + vo.setCastingArrayEnd(length); + return vo; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getArgumentObjects(ICDIStackFrame) - */ - public ICDIArgumentObject[] getArgumentObjects(ICDIStackFrame frame) throws CDIException { + public VariableDescriptor getVariableDescriptorAsType(VariableDescriptor varDesc, String type) throws CDIException { + // throw an exception if not a good type. + Target target = (Target)varDesc.getTarget(); + Thread thread = (Thread)varDesc.getThread(); + StackFrame frame = (StackFrame)varDesc.getStackFrame(); + String name = varDesc.getName(); + String fullName = varDesc.getFullName(); + int pos = varDesc.getPosition(); + int depth = varDesc.getStackDepth(); + + checkType(frame, type); + VariableDescriptor vo = null; + + if (varDesc instanceof ArgumentDescriptor || varDesc instanceof Argument) { + vo = new ArgumentDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof LocalVariableDescriptor || varDesc instanceof LocalVariable) { + vo = new LocalVariableDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof GlobalVariableDescriptor || varDesc instanceof GlobalVariable) { + vo = new GlobalVariableDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof ThreadStorageDescriptor || varDesc instanceof ThreadStorage) { + vo = new ThreadStorageDescriptor(target, thread, frame, name, fullName, pos, depth); + } else if (varDesc instanceof RegisterDescriptor || varDesc instanceof Register) { + vo = new RegisterDescriptor(target, thread, frame, name, fullName, pos, depth); + } else { + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ + } + + String casting = varDesc.getCastingType(); + if (casting != null && casting.length() > 0) { + type = "(" + type + ")" + "(" + casting + " )"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + vo.setCastingType(type); + return vo; + } + + public ICDIVariable createVariable(VariableDescriptor varDesc) throws CDIException { + if (varDesc instanceof ArgumentDescriptor) { + return createArgument((ArgumentDescriptor)varDesc); + } else if (varDesc instanceof LocalVariableDescriptor) { + return createLocalVariable((LocalVariableDescriptor)varDesc); + } else if (varDesc instanceof GlobalVariableDescriptor) { + return createGlobalVariable((GlobalVariableDescriptor)varDesc); + } else if (varDesc instanceof RegisterDescriptor) { + RegisterManager regMgr = ((Session)getSession()).getRegisterManager(); + return regMgr.createRegister((RegisterDescriptor)varDesc); + } else if (varDesc instanceof ThreadStorageDescriptor) { + return createThreadStorage((ThreadStorageDescriptor)varDesc); + } + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ + } + + public Argument createArgument(ArgumentDescriptor argDesc) throws CDIException { + Variable variable = findVariable(argDesc); + Argument argument = null; + if (variable != null && variable instanceof Argument) { + argument = (Argument) variable; + } + if (argument == null) { + String name = argDesc.getQualifiedName(); + StackFrame stack = (StackFrame)argDesc.getStackFrame(); + Session session = (Session) getSession(); + Target target = (Target)argDesc.getTarget(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); + target.setCurrentThread(stack.getThread(), false); + ((Thread)stack.getThread()).setCurrentStackFrame(stack, false); + try { + MISession mi = target.getMISession(); + CommandFactory factory = mi.getCommandFactory(); + MIVarCreate var = factory.createMIVarCreate(name); + mi.postCommand(var); + MIVarCreateInfo info = var.getMIVarCreateInfo(); + if (info == null) { + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ + } + argument = new Argument(argDesc, info.getMIVar()); + List variablesList = getVariablesList(target); + variablesList.add(argument); + } catch (MIException e) { + throw new MI2CDIException(e); + } finally { + target.setCurrentThread(currentThread, false); + currentThread.setCurrentStackFrame(currentFrame, false); + } + } + return argument; + } + + public ICDIArgumentDescriptor[] getArgumentDescriptors(StackFrame frame) throws CDIException { List argObjects = new ArrayList(); Session session = (Session) getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); try { MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); int depth = frame.getThread().getStackFrameCount(); int level = frame.getLevel(); - // Need the GDB/MI view of leve which the reverse i.e. Highest frame is 0 + // Need the GDB/MI view of level which the reverse i.e. Highest frame is 0 int miLevel = depth - level; MIStackListArguments listArgs = factory.createMIStackListArguments(false, miLevel, miLevel); MIArg[] args = null; @@ -296,7 +373,7 @@ public class VariableManager extends Manager implements ICDIVariableManager { } if (args != null) { for (int i = 0; i < args.length; i++) { - ArgumentObject arg = new ArgumentObject(target, args[i].getName(), frame, args.length - i, level); + ArgumentDescriptor arg = new ArgumentDescriptor(target, null, frame, args[i].getName(), null, args.length - i, level); argObjects.add(arg); } } @@ -306,18 +383,10 @@ public class VariableManager extends Manager implements ICDIVariableManager { target.setCurrentThread(currentThread, false); currentThread.setCurrentStackFrame(currentFrame, false); } - return (ICDIArgumentObject[]) argObjects.toArray(new ICDIArgumentObject[0]); + return (ICDIArgumentDescriptor[]) argObjects.toArray(new ICDIArgumentDescriptor[0]); } - /** - * @deprecated - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getGlobalVariableObject(String, String, String) - */ - public ICDIVariableObject getGlobalVariableObject(String filename, String function, String name) throws CDIException { - Target target = ((Session)getSession()).getCurrentTarget(); - return getGlobalVariableObject(target, filename, function, name); - } - public ICDIVariableObject getGlobalVariableObject(Target target, String filename, String function, String name) throws CDIException { + public GlobalVariableDescriptor getGlobalVariableDescriptor(Target target, String filename, String function, String name) throws CDIException { if (filename == null) { filename = new String(); } @@ -335,75 +404,46 @@ public class VariableManager extends Manager implements ICDIVariableManager { buffer.append(function).append("::"); //$NON-NLS-1$ } buffer.append(name); - return new VariableObject(target, buffer.toString(), null, 0, 0); + return new GlobalVariableDescriptor(target, null, null, buffer.toString(), null, 0, 0); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableObjectAsArray(ICDIVariableObject, int, int) - */ - public ICDIVariableObject getVariableObjectAsArray(ICDIVariableObject object, int start, int length) - throws CDIException { - VariableObject obj = null; - if (object instanceof VariableObject) { - obj = (VariableObject) object; + public GlobalVariable createGlobalVariable(GlobalVariableDescriptor varDesc) throws CDIException { + Variable variable = findVariable(varDesc); + GlobalVariable global = null; + if (variable instanceof GlobalVariable) { + global = (GlobalVariable)variable; } - if (obj != null) { - VariableObject vo = - new VariableObject( - (Target)obj.getTarget(), - obj.getName(), - obj.getFullName(), - obj.getStackFrame(), - obj.getPosition(), - obj.getStackDepth()); - vo.setCastingArrayStart(obj.getCastingArrayStart() + start); - vo.setCastingArrayEnd(length); - return vo; - } - throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableObjectAsArray(ICDIVariableObject, String, int, int) - */ - public ICDIVariableObject getVariableObjectAsType(ICDIVariableObject object, String type) throws CDIException { - VariableObject obj = null; - if (object instanceof VariableObject) { - obj = (VariableObject) object; - } - if (obj != null) { - // throw an exception if not a good type. - Target target = (Target)obj.getTarget(); - checkType((StackFrame)obj.getStackFrame(), type); - VariableObject vo = - new VariableObject( - target, - obj.getName(), - obj.getFullName(), - obj.getStackFrame(), - obj.getPosition(), - obj.getStackDepth()); - String casting = obj.getCastingType(); - if (casting != null && casting.length() > 0) { - type = "(" + type + ")" + "(" + casting + " )"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + if (global == null) { + String name = varDesc.getQualifiedName(); + Session session = (Session) getSession(); + Target target = (Target)varDesc.getTarget(); + try { + MISession mi = target.getMISession(); + CommandFactory factory = mi.getCommandFactory(); + MIVarCreate var = factory.createMIVarCreate(name); + mi.postCommand(var); + MIVarCreateInfo info = var.getMIVarCreateInfo(); + if (info == null) { + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ + } + global = new GlobalVariable(varDesc, info.getMIVar()); + List variablesList = getVariablesList(target); + variablesList.add(global); + } catch (MIException e) { + throw new MI2CDIException(e); } - vo.setCastingType(type); - return vo; } - throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ + return global; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableObjects(ICDIStackFrame) - */ - public ICDIVariableObject[] getLocalVariableObjects(ICDIStackFrame frame) throws CDIException { + public ICDILocalVariableDescriptor[] getLocalVariableDescriptors(StackFrame frame) throws CDIException { List varObjects = new ArrayList(); Session session = (Session) getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); try { MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); @@ -418,7 +458,7 @@ public class VariableManager extends Manager implements ICDIVariableManager { args = info.getLocals(); if (args != null) { for (int i = 0; i < args.length; i++) { - VariableObject varObj = new VariableObject(target, args[i].getName(), frame, args.length - i, level); + LocalVariableDescriptor varObj = new LocalVariableDescriptor(target, null, frame, args[i].getName(), null, args.length - i, level); varObjects.add(varObj); } } @@ -428,82 +468,60 @@ public class VariableManager extends Manager implements ICDIVariableManager { target.setCurrentThread(currentThread, false); currentThread.setCurrentStackFrame(currentFrame, false); } - return (ICDIVariableObject[]) varObjects.toArray(new ICDIVariableObject[0]); + return (ICDILocalVariableDescriptor[]) varObjects.toArray(new ICDILocalVariableDescriptor[0]); } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableObjects(ICDIStackFrame) - */ - public ICDIVariableObject[] getVariableObjects(ICDIStackFrame frame) throws CDIException { - ICDIVariableObject[] locals = getLocalVariableObjects(frame); - ICDIVariableObject[] args = getArgumentObjects(frame); - ICDIVariableObject[] vars = new ICDIVariableObject[locals.length + args.length]; - System.arraycopy(locals, 0, vars, 0, locals.length); - System.arraycopy(args, 0, vars, locals.length, args.length); - return vars; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#createVariable(ICDIVariableObject) - */ - public ICDIVariable createVariable(ICDIVariableObject v) throws CDIException { - VariableObject varObj = null; - if (v instanceof VariableObject) { - varObj = (VariableObject) v; + public LocalVariable createLocalVariable(LocalVariableDescriptor varDesc) throws CDIException { + Variable variable = findVariable(varDesc); + LocalVariable local = null; + if (variable instanceof LocalVariable) { + local = (LocalVariable)variable; } - if (varObj != null) { - Variable variable = findVariable(varObj); - if (variable == null) { - String name = varObj.getQualifiedName(); - Session session = (Session) getSession(); - ICDIStackFrame stack = varObj.getStackFrame(); - ICDIThread currentThread = null; - ICDIStackFrame currentFrame = null; - Target target = (Target)varObj.getTarget(); - if (stack != null) { - currentThread = target.getCurrentThread(); - currentFrame = currentThread.getCurrentStackFrame(); - target.setCurrentThread(stack.getThread(), false); - stack.getThread().setCurrentStackFrame(stack, false); - } - try { - MISession mi = target.getMISession(); - CommandFactory factory = mi.getCommandFactory(); - MIVarCreate var = factory.createMIVarCreate(name); - mi.postCommand(var); - MIVarCreateInfo info = var.getMIVarCreateInfo(); - if (info == null) { - throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ - } - variable = new Variable(varObj, info.getMIVar()); - List variablesList = getVariablesList(target); - variablesList.add(variable); - } catch (MIException e) { - throw new MI2CDIException(e); - } finally { - if (currentThread != null) { - target.setCurrentThread(currentThread, false); - currentThread.setCurrentStackFrame(currentFrame, false); - } + if (local == null) { + String name = varDesc.getQualifiedName(); + Session session = (Session) getSession(); + StackFrame stack = (StackFrame)varDesc.getStackFrame(); + Target target = (Target)varDesc.getTarget(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); + target.setCurrentThread(stack.getThread(), false); + ((Thread)stack.getThread()).setCurrentStackFrame(stack, false); + try { + MISession mi = target.getMISession(); + CommandFactory factory = mi.getCommandFactory(); + MIVarCreate var = factory.createMIVarCreate(name); + mi.postCommand(var); + MIVarCreateInfo info = var.getMIVarCreateInfo(); + if (info == null) { + throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } + local = new LocalVariable(varDesc, info.getMIVar()); + List variablesList = getVariablesList(target); + variablesList.add(local); + } catch (MIException e) { + throw new MI2CDIException(e); + } finally { + target.setCurrentThread(currentThread, false); + currentThread.setCurrentStackFrame(currentFrame, false); } - return variable; } - throw new CDIException(CdiResources.getString("cdi.VariableManager.Wrong_variable_type")); //$NON-NLS-1$ + return local; } - /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#destroyVariable(ICDIVariable) - */ - public void destroyVariable(ICDIVariable var) throws CDIException { - if (var instanceof Variable) { - // Fire a destroyEvent ? - Variable variable = (Variable) var; - Target target = (Target)variable.getTarget(); - MISession mi = target.getMISession(); - MIVarDeletedEvent del = new MIVarDeletedEvent(mi, variable.getMIVar().getVarName()); - mi.fireEvent(del); - } + public ICDIThreadStorageDescriptor[] getThreadStorageDescriptors(Thread thread) throws CDIException { + return new ICDIThreadStorageDescriptor[0]; + } + + public ThreadStorage createThreadStorage(ThreadStorageDescriptor desc) throws CDIException { + throw new CDIException(CdiResources.getString("cdi.VariableManager.Unknown_variable_object")); //$NON-NLS-1$ + } + + public void destroyVariable(Variable variable) throws CDIException { + // Fire a destroyEvent ? + Target target = (Target)variable.getTarget(); + MISession mi = target.getMISession(); + MIVarDeletedEvent del = new MIVarDeletedEvent(mi, variable.getMIVar().getVarName()); + mi.fireEvent(del); } /** @@ -524,8 +542,8 @@ public class VariableManager extends Manager implements ICDIVariableManager { CommandFactory factory = mi.getCommandFactory(); Variable[] vars = getVariables(target); ICDIStackFrame[] frames = null; - ICDIStackFrame currentStack = null; - ICDIThread currentThread = target.getCurrentThread(); + StackFrame currentStack = null; + Thread currentThread = (Thread)target.getCurrentThread(); if (currentThread != null) { currentStack = currentThread.getCurrentStackFrame(); if (currentStack != null) { @@ -614,4 +632,5 @@ public class VariableManager extends Manager implements ICDIVariableManager { // need to call -var-delete. return !inScope; } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java index 9375d5ab690..cfb0af3d6d9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java @@ -42,7 +42,7 @@ public class ChangedEvent implements ICDIChangedEvent { session = s; // Try the Variable manager. - VariableManager mgr = (VariableManager)session.getVariableManager(); + VariableManager mgr = session.getVariableManager(); String varName = var.getVarName(); MISession miSession = var.getMISession(); source = mgr.getVariable(miSession, varName); @@ -55,7 +55,7 @@ public class ChangedEvent implements ICDIChangedEvent { // Try the Register manager if (source == null) { - RegisterManager regMgr = (RegisterManager)session.getRegisterManager(); + RegisterManager regMgr = session.getRegisterManager(); source = regMgr.getRegister(miSession, varName); } @@ -68,7 +68,7 @@ public class ChangedEvent implements ICDIChangedEvent { public ChangedEvent(Session s, MIRegisterChangedEvent reg) { session = s; - RegisterManager mgr = (RegisterManager)session.getRegisterManager(); + RegisterManager mgr = session.getRegisterManager(); MISession miSession = reg.getMISession(); int regno = reg.getNumber(); source = mgr.getRegister(miSession, regno); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java index ca3016ca21b..99cb2961510 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java @@ -51,7 +51,7 @@ public class CreatedEvent implements ICDICreatedEvent { public CreatedEvent(Session s, MIVarCreatedEvent var) { session = s; - VariableManager mgr = (VariableManager)session.getVariableManager(); + VariableManager mgr = session.getVariableManager(); MISession miSession = var.getMISession(); String varName = var.getVarName(); source = mgr.getVariable(miSession, varName); @@ -63,7 +63,7 @@ public class CreatedEvent implements ICDICreatedEvent { public CreatedEvent(Session s, MIRegisterCreatedEvent reg) { session = s; - RegisterManager mgr = (RegisterManager)session.getRegisterManager(); + RegisterManager mgr = session.getRegisterManager(); MISession miSession = reg.getMISession(); int regno = reg.getNumber(); source = mgr.getRegister(miSession, regno); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java index cf0400c2cdc..a3576ca8293 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java @@ -45,7 +45,7 @@ public class DestroyedEvent implements ICDIDestroyedEvent { public DestroyedEvent(Session s, MIVarDeletedEvent var) { session = s; - VariableManager varMgr = (VariableManager)session.getVariableManager(); + VariableManager varMgr = session.getVariableManager(); MISession miSession = var.getMISession(); String varName = var.getVarName(); Variable variable = varMgr.getVariable(miSession, varName); diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java index fd8f4776642..23c5eb879a9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Argument.java @@ -17,8 +17,20 @@ import org.eclipse.cdt.debug.mi.core.output.MIVar; */ public class Argument extends Variable implements ICDIArgument { - public Argument(ArgumentObject obj, MIVar var) { + public Argument(Target target, Thread thread, StackFrame frame, + String n, String q, int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth, v); + } + + public Argument(ArgumentDescriptor obj, MIVar var) { super(obj, var); } + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.mi.core.cdi.model.Variable#createVariable(org.eclipse.cdt.debug.mi.core.cdi.model.Target, org.eclipse.cdt.debug.core.cdi.model.ICDIThread, org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame, java.lang.String, java.lang.String, int, int, org.eclipse.cdt.debug.mi.core.output.MIVar) + */ + protected Variable createVariable(Target target, Thread thread, StackFrame frame, String name, String fullName, int pos, int depth, MIVar miVar) { + return new Argument(target, thread, frame, name, fullName, pos, depth, miVar); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentDescriptor.java similarity index 64% rename from debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java rename to debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentDescriptor.java index 27fe78cc05d..a112bc73803 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentObject.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ArgumentDescriptor.java @@ -11,15 +11,15 @@ package org.eclipse.cdt.debug.mi.core.cdi.model; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentObject; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; +import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentDescriptor; /** */ -public class ArgumentObject extends VariableObject implements ICDIArgumentObject { +public class ArgumentDescriptor extends LocalVariableDescriptor implements ICDIArgumentDescriptor { - public ArgumentObject(Target target, String name, ICDIStackFrame frame, int pos, int depth) { - super(target, name, frame, pos, depth); + public ArgumentDescriptor(Target target, Thread thread, StackFrame frame, String n, String fn, + int pos, int depth) { + super(target, thread, frame, n, fn, pos, depth); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Expression.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Expression.java index c5ba8d001f8..b1d17d0d2e3 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Expression.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Expression.java @@ -63,28 +63,28 @@ public class Expression extends CObject implements ICDIExpression { Target target = (Target)getTarget(); Session session = (Session) (target.getSession()); SourceManager sourceMgr = session.getSourceManager(); - String nametype = sourceMgr.getTypeName(frame, getExpressionText()); + String nametype = sourceMgr.getTypeName((StackFrame)frame, getExpressionText()); try { - type = sourceMgr.getType(frame, nametype); + type = sourceMgr.getType((StackFrame)frame, nametype); } catch (CDIException e) { // Try with ptype. try { - String ptype = sourceMgr.getDetailTypeName(frame, nametype); - type = sourceMgr.getType(frame, ptype); + String ptype = sourceMgr.getDetailTypeName((StackFrame)frame, nametype); + type = sourceMgr.getType((StackFrame)frame, ptype); } catch (CDIException ex) { // Some version of gdb does not work with the name of the class // ex: class data foo --> ptype data --> fails // ex: class data foo --> ptype foo --> succeed try { - String ptype = sourceMgr.getDetailTypeName(frame, getExpressionText()); - type = sourceMgr.getType(frame, ptype); + String ptype = sourceMgr.getDetailTypeName((StackFrame)frame, getExpressionText()); + type = sourceMgr.getType((StackFrame)frame, ptype); } catch (CDIException e2) { // give up. } } } if (type == null) { - type = new IncompleteType(frame, nametype); + type = new IncompleteType((StackFrame)frame, nametype); } return type; @@ -96,8 +96,17 @@ public class Expression extends CObject implements ICDIExpression { public ICDIValue getValue(ICDIStackFrame context) throws CDIException { Session session = (Session)getTarget().getSession(); ExpressionManager mgr = session.getExpressionManager(); - Variable var = mgr.createVariable(context, getExpressionText()); + Variable var = mgr.createVariable((StackFrame)context, getExpressionText()); return var.getValue(); } + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIExpression#dispose() + */ + public void dispose() throws CDIException { + Session session = (Session)getTarget().getSession(); + ExpressionManager mgr = session.getExpressionManager(); + mgr.destroyExpressions((Target)getTarget(), new Expression[] {this}); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariable.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariable.java new file mode 100644 index 00000000000..497c3fc1ff1 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariable.java @@ -0,0 +1,51 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDIGlobalVariable; +import org.eclipse.cdt.debug.mi.core.output.MIVar; + +/** + * GlobalVariable + */ +public class GlobalVariable extends Variable implements ICDIGlobalVariable { + + + /** + * @param obj + * @param v + */ + public GlobalVariable(VariableDescriptor obj, MIVar v) { + super(obj, v); + } + + /** + * @param target + * @param n + * @param q + * @param thread + * @param stack + * @param pos + * @param depth + * @param v + */ + public GlobalVariable(Target target, Thread thread, StackFrame frame, String n, String q, int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth, v); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.mi.core.cdi.model.Variable#createVariable(org.eclipse.cdt.debug.mi.core.cdi.model.Target, java.lang.String, java.lang.String, org.eclipse.cdt.debug.core.cdi.model.ICDIThread, org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame, int, int, org.eclipse.cdt.debug.mi.core.output.MIVar) + */ + protected Variable createVariable(Target target, Thread thread, StackFrame frame, String name, String fullName, int pos, int depth, MIVar miVar) { + return new GlobalVariable(target, thread, frame, name, fullName, pos, depth, miVar); + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariableDescriptor.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariableDescriptor.java new file mode 100644 index 00000000000..494af6563ff --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/GlobalVariableDescriptor.java @@ -0,0 +1,35 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDIGlobalVariableDescriptor; + +/** + * GlobalVariableDescriptor + */ +public class GlobalVariableDescriptor extends VariableDescriptor implements ICDIGlobalVariableDescriptor { + + /** + * @param target + * @param thread + * @param stack + * @param n + * @param fn + * @param pos + * @param depth + */ + public GlobalVariableDescriptor(Target target, Thread thread, + StackFrame stack, String n, String fn, int pos, int depth) { + super(target, thread, stack, n, fn, pos, depth); + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariable.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariable.java new file mode 100644 index 00000000000..cd1d66769ca --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariable.java @@ -0,0 +1,45 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDILocalVariable; +import org.eclipse.cdt.debug.mi.core.output.MIVar; + +/** + * LocalVariable + */ +public class LocalVariable extends Variable implements ICDILocalVariable { + + /** + * @param obj + * @param v + */ + public LocalVariable(LocalVariableDescriptor obj, MIVar v) { + super(obj, v); + } + + /** + */ + public LocalVariable(Target target, Thread thread, StackFrame frame, String n, String q, + int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth, v); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.mi.core.cdi.model.Variable#createVariable(org.eclipse.cdt.debug.mi.core.cdi.model.Target, java.lang.String, java.lang.String, org.eclipse.cdt.debug.core.cdi.model.ICDIThread, org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame, int, int, org.eclipse.cdt.debug.mi.core.output.MIVar) + */ + protected Variable createVariable(Target target, Thread thread, StackFrame frame, String name, + String fullName, int pos, int depth, MIVar miVar) { + return new LocalVariable(target, thread, frame, name, fullName, pos, depth, miVar); + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariableDescriptor.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariableDescriptor.java new file mode 100644 index 00000000000..abc4f88edea --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/LocalVariableDescriptor.java @@ -0,0 +1,34 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDILocalVariableDescriptor; + +/** + * LocalVariableDescriptor + */ +public class LocalVariableDescriptor extends VariableDescriptor implements + ICDILocalVariableDescriptor { + + /** + * @param target + * @param n + * @param fn + * @param stack + * @param pos + * @param depth + */ + public LocalVariableDescriptor(Target target, Thread thread, StackFrame frame, String n, String fn, int pos, int depth) { + super(target, thread, frame, n, fn, pos, depth); + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java index 99712587123..4c8cb549d26 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Register.java @@ -10,29 +10,34 @@ *******************************************************************************/ package org.eclipse.cdt.debug.mi.core.cdi.model; -import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.mi.core.MIException; -import org.eclipse.cdt.debug.mi.core.MISession; -import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; -import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; -import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; -import org.eclipse.cdt.debug.mi.core.command.CommandFactory; -import org.eclipse.cdt.debug.mi.core.command.MIVarListChildren; import org.eclipse.cdt.debug.mi.core.output.MIVar; -import org.eclipse.cdt.debug.mi.core.output.MIVarListChildrenInfo; /** */ public class Register extends Variable implements ICDIRegister { - public Register(RegisterObject obj, MIVar var) { + /** + * @param target + * @param thread + * @param frame + * @param n + * @param q + * @param pos + * @param depth + * @param v + */ + public Register(Target target, Thread thread, StackFrame frame, + String n, String q, int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth, v); + } + + public Register(RegisterDescriptor obj, MIVar var) { super(obj, var); } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.mi.core.cdi.model.VariableObject#getFullName() + * @see org.eclipse.cdt.debug.mi.core.cdi.model.VariableDescriptor#getFullName() */ public String getFullName() { if (fullName == null) { @@ -44,40 +49,8 @@ public class Register extends Variable implements ICDIRegister { return fullName; } - public ICDIVariable[] getChildren() throws CDIException { - Target target = (Target)getTarget(); - MISession miSession = target.getMISession(); - RegisterManager mgr = (RegisterManager)target.getSession().getRegisterManager(); - CommandFactory factory = miSession.getCommandFactory(); - MIVarListChildren var = - factory.createMIVarListChildren(getMIVar().getVarName()); - try { - miSession.postCommand(var); - MIVarListChildrenInfo info = var.getMIVarListChildrenInfo(); - if (info == null) { - throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ - } - MIVar[] vars = info.getMIVars(); - children = new Register[vars.length]; - for (int i = 0; i < vars.length; i++) { - String fn; - String exp = vars[i].getExp(); - if (isCPPLanguage()) { - if ((exp.equals("private") || exp.equals("public") || exp.equals("protected"))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - fn = getFullName(); - } else { - fn = getFullName() + "." + exp; //$NON-NLS-1$ - } - } else { - fn = getFullName() + "." + exp; //$NON-NLS-1$ - } - RegisterObject regObj = new RegisterObject(target, exp, fn, getPosition()); - children[i] = mgr.createRegister(regObj, vars[i]); - } - } catch (MIException e) { - throw new MI2CDIException(e); - } - return children; + protected Variable createVariable(Target target, Thread thread, StackFrame frame, String name, String fullName, int pos, int depth, MIVar miVar) { + return new Register(target, thread, frame, name, fullName, pos, depth, miVar); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterDescriptor.java similarity index 65% rename from debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java rename to debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterDescriptor.java index ecb9d7dfc02..48d006732b6 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterObject.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterDescriptor.java @@ -11,22 +11,19 @@ package org.eclipse.cdt.debug.mi.core.cdi.model; -import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterDescriptor; /** */ -public class RegisterObject extends VariableObject implements ICDIRegisterObject { +public class RegisterDescriptor extends VariableDescriptor implements ICDIRegisterDescriptor { - public RegisterObject(Target target, String name, int i) { - super(target, name, null, i, 0); - } - public RegisterObject(Target target, String name, String fn, int i) { - super(target, name, fn, null, i, 0); + public RegisterDescriptor(Target target, Thread thread, StackFrame frame, String name, String fn, int pos, int depth) { + super(target, thread, frame, name, fn, pos, depth); } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.mi.core.cdi.model.VariableObject#getFullName() + * @see org.eclipse.cdt.debug.mi.core.cdi.model.VariableDescriptor#getFullName() */ public String getFullName() { if (fullName == null) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterGroup.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterGroup.java new file mode 100644 index 00000000000..87f330e0d24 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/RegisterGroup.java @@ -0,0 +1,52 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterDescriptor; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; +import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; +import org.eclipse.cdt.debug.mi.core.cdi.Session; + +/** + * RegisterGroup + */ +public class RegisterGroup extends CObject implements ICDIRegisterGroup { + + String fName; + + /** + * @param t + */ + public RegisterGroup(Target t, String name) { + super(t); + fName = name; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup#getRegisterDescriptors() + */ + public ICDIRegisterDescriptor[] getRegisterDescriptors() throws CDIException { + Target target = (Target)getTarget(); + Session session = (Session)target.getSession(); + RegisterManager regMgr = session.getRegisterManager(); + return regMgr.getRegisterDescriptors(this); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup#getName() + */ + public String getName() { + return fName; + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java index f7baf5ed449..82313e90fdb 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/SharedLibrary.java @@ -73,7 +73,7 @@ public class SharedLibrary extends CObject implements ICDISharedLibrary { */ public void loadSymbols() throws CDIException { Target target = (Target)getTarget(); - SharedLibraryManager mgr = (SharedLibraryManager)((Session)target.getSession()).getSharedLibraryManager(); + SharedLibraryManager mgr = ((Session)target.getSession()).getSharedLibraryManager(); mgr.loadSymbols(target, new ICDISharedLibrary[] { this }); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java index c8b9cde92aa..68c2c3eea78 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/StackFrame.java @@ -14,13 +14,11 @@ import java.math.BigInteger; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDILocation; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgument; -import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIArgumentDescriptor; +import org.eclipse.cdt.debug.core.cdi.model.ICDILocalVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MIFormat; import org.eclipse.cdt.debug.mi.core.MISession; @@ -42,8 +40,8 @@ public class StackFrame extends CObject implements ICDIStackFrame { MIFrame frame; Thread cthread; int level; - ICDIArgument[] args; - ICDIVariable[] locals; + ICDIArgumentDescriptor[] argDescs; + ICDILocalVariableDescriptor[] localDescs; Location fLocation; /* @@ -88,45 +86,27 @@ public class StackFrame extends CObject implements ICDIStackFrame { } /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame#getArguments() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame#getArgumentDescriptors() */ - public ICDIArgument[] getArguments() throws CDIException { - if (args == null) { + public ICDIArgumentDescriptor[] getArgumentDescriptors() throws CDIException { + if (argDescs == null) { Session session = (Session)getTarget().getSession(); - VariableManager mgr = (VariableManager)session.getVariableManager(); - ICDIArgumentObject[] argObjs = mgr.getArgumentObjects(this); - args = new ICDIArgument[argObjs.length]; - for (int i = 0; i < args.length; i++) { - try { - args[i] = mgr.createArgument(argObjs[i]); - } catch (CDIException e) { - args = null; - throw e; - } - } + VariableManager mgr = session.getVariableManager(); + argDescs = mgr.getArgumentDescriptors(this); } - return args; + return argDescs; } /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame#getLocalVariables() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame#getLocalVariableDescriptors() */ - public ICDIVariable[] getLocalVariables() throws CDIException { - if (locals == null) { + public ICDILocalVariableDescriptor[] getLocalVariableDescriptors() throws CDIException { + if (localDescs == null) { Session session = (Session)getTarget().getSession(); - VariableManager mgr = (VariableManager)session.getVariableManager(); - ICDIVariableObject[] varObjs = mgr.getLocalVariableObjects(this); - locals = new ICDIVariable[varObjs.length]; - for (int i = 0; i < locals.length; i++) { - try { - locals[i] = mgr.createVariable(varObjs[i]); - } catch (CDIException e) { - locals = null; - throw e; - } - } + VariableManager mgr = session.getVariableManager(); + localDescs = mgr.getLocalVariableDescriptors(this); } - return locals; + return localDescs; } /** 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 795ea2f74ac..22babe2aa76 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 @@ -17,19 +17,20 @@ import java.util.List; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDICondition; import org.eclipse.cdt.debug.core.cdi.ICDILocation; -import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint; import org.eclipse.cdt.debug.core.cdi.model.ICDIExpression; import org.eclipse.cdt.debug.core.cdi.model.ICDIInstruction; import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint; import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock; import org.eclipse.cdt.debug.core.cdi.model.ICDIMixedInstruction; +import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; import org.eclipse.cdt.debug.core.cdi.model.ICDIRuntimeOptions; 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.ICDIThread; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint; import org.eclipse.cdt.debug.mi.core.CoreProcess; import org.eclipse.cdt.debug.mi.core.MIException; @@ -41,6 +42,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager; import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; import org.eclipse.cdt.debug.mi.core.cdi.Session; +import org.eclipse.cdt.debug.mi.core.cdi.SessionObject; import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager; import org.eclipse.cdt.debug.mi.core.cdi.SignalManager; import org.eclipse.cdt.debug.mi.core.cdi.SourceManager; @@ -70,16 +72,15 @@ import org.eclipse.cdt.debug.mi.core.output.MIThreadSelectInfo; /** */ -public class Target implements ICDITarget { +public class Target extends SessionObject implements ICDITarget { - Session session; MISession miSession; Thread[] noThreads = new Thread[0]; Thread[] currentThreads; int currentThreadId; public Target(Session s, MISession mi) { - session = s; + super(s); miSession = mi; currentThreads = noThreads; } @@ -88,13 +89,6 @@ public class Target implements ICDITarget { return miSession; } - /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getSession() - */ - public ICDISession getSession() { - return session; - } - /** * @see org.eclipse.cdt.debug.core.cdi.model.ICDIObject#getTarget() */ @@ -154,15 +148,16 @@ public class Target implements ICDITarget { throw new MI2CDIException(e); } + Session session = (Session)getSession(); // Resetting threads may change the value of // some variables like Register. Call an update() // To generate changeEvents. if (doUpdate) { - RegisterManager regMgr = (RegisterManager)session.getRegisterManager(); + RegisterManager regMgr = session.getRegisterManager(); if (regMgr.isAutoUpdate()) { regMgr.update(this); } - VariableManager varMgr = (VariableManager)session.getVariableManager(); + VariableManager varMgr = session.getVariableManager(); if (varMgr.isAutoUpdate()) { varMgr.update(this); } @@ -636,10 +631,10 @@ public class Target implements ICDITarget { public String evaluateExpressionToString(ICDIStackFrame frame, String expressionText) throws CDIException { Session session = (Session)getSession(); Target target = (Target)frame.getTarget(); - ICDIThread currentThread = target.getCurrentThread(); - ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame(); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); target.setCurrentThread(frame.getThread(), false); - frame.getThread().setCurrentStackFrame(frame, false); + ((Thread)frame.getThread()).setCurrentStackFrame((StackFrame)frame, false); try { CommandFactory factory = miSession.getCommandFactory(); MIDataEvaluateExpression evaluate = @@ -933,4 +928,20 @@ public class Target implements ICDITarget { return sharedMgr.getSharedLibraries(this); } + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getGlobalVariableDescriptors(java.lang.String, java.lang.String, java.lang.String) + */ + public ICDIVariableDescriptor getGlobalVariableDescriptors(String filename, String function, String name) throws CDIException { + VariableManager varMgr = ((Session)getSession()).getVariableManager(); + return varMgr.getGlobalVariableDescriptor(this, filename, function, name); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getRegisterGroups() + */ + public ICDIRegisterGroup[] getRegisterGroups() throws CDIException { + RegisterManager regMgr = ((Session)getSession()).getRegisterManager(); + return regMgr.getRegisterGroups(this); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java index ec6ad21d30d..f235c54e940 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java @@ -21,6 +21,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint; 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.ICDIThread; +import org.eclipse.cdt.debug.core.cdi.model.ICDIThreadStorageDescriptor; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; @@ -45,7 +46,7 @@ public class Thread extends CObject implements ICDIThread { static ICDIStackFrame[] noStack = new ICDIStackFrame[0]; int id; String name; - ICDIStackFrame currentFrame; + StackFrame currentFrame; List currentFrames; int stackdepth = 0; @@ -86,11 +87,11 @@ public class Thread extends CObject implements ICDIThread { } } - public ICDIStackFrame getCurrentStackFrame() throws CDIException { + public StackFrame getCurrentStackFrame() throws CDIException { if (currentFrame == null) { ICDIStackFrame[] frames = getStackFrames(0, 0); if (frames.length > 0) { - currentFrame = frames[0]; + currentFrame = (StackFrame)frames[0]; } } return currentFrame; @@ -137,7 +138,7 @@ public class Thread extends CObject implements ICDIThread { for (int i = 0; i < currentFrames.size(); i++) { ICDIStackFrame stack = (ICDIStackFrame) currentFrames.get(i); if (stack.getLevel() == depth) { - currentFrame = stack; + currentFrame = (StackFrame)stack; } } } @@ -244,17 +245,10 @@ public class Thread extends CObject implements ICDIThread { return (ICDIStackFrame[])list.toArray(noStack); } - /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#setCurrentStackFrame(ICDIStackFrame) - */ - public void setCurrentStackFrame(ICDIStackFrame stackframe) throws CDIException { - setCurrentStackFrame(stackframe, true); - } - /** * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#setCurrentStackFrame(ICDIStackFrame, boolean) */ - public void setCurrentStackFrame(ICDIStackFrame stackframe, boolean doUpdate) throws CDIException { + public void setCurrentStackFrame(StackFrame stackframe, boolean doUpdate) throws CDIException { // Assert we should assert that the stackframe is one of our frames. @@ -295,11 +289,11 @@ public class Thread extends CObject implements ICDIThread { // To generate changeEvents. if (doUpdate) { Session session = (Session) target.getSession(); - RegisterManager regMgr = (RegisterManager) session.getRegisterManager(); + RegisterManager regMgr = session.getRegisterManager(); if (regMgr.isAutoUpdate()) { regMgr.update(target); } - VariableManager varMgr = (VariableManager) session.getVariableManager(); + VariableManager varMgr = session.getVariableManager(); if (varMgr.isAutoUpdate()) { varMgr.update(target); } @@ -520,4 +514,13 @@ public class Thread extends CObject implements ICDIThread { return target.setLocationBreakpoint(type, location, newCondition, deferred); } + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#getThreadStorageDescriptors() + */ + public ICDIThreadStorageDescriptor[] getThreadStorageDescriptors() throws CDIException { + Session session = (Session)getTarget().getSession(); + VariableManager varMgr = session.getVariableManager(); + return varMgr.getThreadStorageDescriptors(this); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorage.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorage.java new file mode 100644 index 00000000000..b3d4fb737fb --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorage.java @@ -0,0 +1,54 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDIThreadStorage; +import org.eclipse.cdt.debug.mi.core.output.MIVar; + +/** + * ThreadStorage + */ +public class ThreadStorage extends Variable implements ICDIThreadStorage { + + /** + * @param obj + * @param v + */ + public ThreadStorage(VariableDescriptor obj, MIVar v) { + super(obj, v); + } + + /** + * @param target + * @param thread + * @param frame + * @param n + * @param q + * @param pos + * @param depth + * @param v + */ + public ThreadStorage(Target target, Thread thread, StackFrame frame, + String n, String q, int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth, v); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.mi.core.cdi.model.Variable#createVariable(org.eclipse.cdt.debug.mi.core.cdi.model.Target, org.eclipse.cdt.debug.mi.core.cdi.model.Thread, org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame, java.lang.String, java.lang.String, int, int, org.eclipse.cdt.debug.mi.core.output.MIVar) + */ + protected Variable createVariable(Target target, Thread thread, + StackFrame frame, String name, String fullName, int pos, int depth, + MIVar miVar) { + return null; + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorageDescriptor.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorageDescriptor.java new file mode 100644 index 00000000000..c0010315b9b --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/ThreadStorageDescriptor.java @@ -0,0 +1,36 @@ +/********************************************************************** + * Copyright (c) 2002,2003,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.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDIThreadStorageDescriptor; + +/** + * ThreadStorageDescriptor + */ +public class ThreadStorageDescriptor extends VariableDescriptor implements + ICDIThreadStorageDescriptor { + + /** + * @param target + * @param thread + * @param stack + * @param n + * @param fn + * @param pos + * @param depth + */ + public ThreadStorageDescriptor(Target target, Thread thread, + StackFrame stack, String n, String fn, int pos, int depth) { + super(target, thread, stack, n, fn, pos, depth); + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java index 191fd3c90f7..b7f07f13a86 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.debug.mi.core.cdi.model; import org.eclipse.cdt.debug.core.cdi.CDIException; -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.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayType; @@ -69,7 +69,7 @@ import org.eclipse.cdt.debug.mi.core.output.MIVarShowAttributesInfo; /** */ -public class Variable extends VariableObject implements ICDIVariable { +public abstract class Variable extends VariableDescriptor implements ICDIVariable { MIVar miVar; Value value; @@ -78,13 +78,13 @@ public class Variable extends VariableObject implements ICDIVariable { String language; boolean isFake = false; - public Variable(VariableObject obj, MIVar v) { + public Variable(VariableDescriptor obj, MIVar v) { super(obj); miVar = v; } - public Variable(Target target, String n, String q, ICDIStackFrame stack, int pos, int depth, MIVar v) { - super(target, n, q, stack, pos, depth); + public Variable(Target target, Thread thread, StackFrame frame, String n, String q, int pos, int depth, MIVar v) { + super(target, thread, frame, n, q, pos, depth); miVar = v; } @@ -220,7 +220,8 @@ public class Variable extends VariableObject implements ICDIVariable { fn = "(" + fn + ")." + vars[i].getExp(); //$NON-NLS-1$ //$NON-NLS-2$ } } - Variable v = new Variable((Target)getTarget(), childName, fn, getStackFrame(), getPosition(), getStackDepth(), vars[i]); + Variable v = createVariable((Target)getTarget(), (Thread)getThread(), (StackFrame)getStackFrame(), + childName, fn, getPosition(), getStackDepth(), vars[i]); if (childType != null) { // Hack to reset the typename to a known value v.type = childType; @@ -234,6 +235,9 @@ public class Variable extends VariableObject implements ICDIVariable { return children; } + protected abstract Variable createVariable(Target target, Thread thread, StackFrame frame, + String name, String fullName, int pos, int depth, MIVar miVar); + public int getChildrenNumber() throws CDIException { return miVar.getNumChild(); } @@ -314,31 +318,29 @@ public class Variable extends VariableObject implements ICDIVariable { // Changing values may have side effects i.e. affecting other variables // if the manager is on autoupdate check all the other variables. // Note: This maybe very costly. - if (this instanceof Register) { - // If register was on autoupdate, update all the other registers - // assigning may have side effects i.e. affecting other registers. - RegisterManager mgr = (RegisterManager)target.getSession().getRegisterManager(); - if (mgr.isAutoUpdate()) { - mgr.update(target); - } - } else { - // If expression was on autoupdate, update all the other expression - // assigning may have side effects i.e. affecting other expressions. - ExpressionManager expMgr = ((Session)target.getSession()).getExpressionManager(); - if (expMgr.isAutoUpdate()) { - expMgr.update(target); - } + // assigning may have side effects i.e. affecting other registers. - // FIXME: Should we always call the Variable Manager ? - VariableManager varMgr = (VariableManager)target.getSession().getVariableManager(); - if (varMgr.isAutoUpdate()) { - varMgr.update(target); - } + // If register was on autoupdate, update all the other registers + RegisterManager regMgr = ((Session)target.getSession()).getRegisterManager(); + if (regMgr.isAutoUpdate()) { + regMgr.update(target); + } + + // If expression was on autoupdate, update all the other expression + ExpressionManager expMgr = ((Session)target.getSession()).getExpressionManager(); + if (expMgr.isAutoUpdate()) { + expMgr.update(target); + } + + // If variable was on autoupdate, update all the variables. + VariableManager varMgr = ((Session)target.getSession()).getVariableManager(); + if (varMgr.isAutoUpdate()) { + varMgr.update(target); } } /** - * Overload the implementation of VariableObject and let gdb + * Overload the implementation of VariableDescriptor and let gdb * handle it. * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariable#isEditable() */ @@ -391,4 +393,13 @@ public class Variable extends VariableObject implements ICDIVariable { return super.equals(var); } + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariable#dispose() + */ + public void dispose() throws CDIException { + ICDITarget target = getTarget(); + VariableManager varMgr = ((Session)target.getSession()).getVariableManager(); + varMgr.destroyVariable(this); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableDescriptor.java similarity index 53% rename from debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java rename to debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableDescriptor.java index 08db1c264f2..b6bec29240b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/VariableDescriptor.java @@ -12,19 +12,16 @@ package org.eclipse.cdt.debug.mi.core.cdi.model; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayType; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIFunctionType; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIPointerType; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIReferenceType; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIStructType; +import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; -import org.eclipse.cdt.debug.core.cdi.model.type.ICDIVoidType; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.Session; import org.eclipse.cdt.debug.mi.core.cdi.SourceManager; +import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; import org.eclipse.cdt.debug.mi.core.cdi.model.type.IncompleteType; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIDataEvaluateExpression; @@ -33,7 +30,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; /** */ -public class VariableObject extends CObject implements ICDIVariableObject { +public abstract class VariableDescriptor extends CObject implements ICDIVariableDescriptor { // Casting info. String castingType; @@ -42,7 +39,8 @@ public class VariableObject extends CObject implements ICDIVariableObject { String name; int position; - ICDIStackFrame frame; + StackFrame fStackFrame; + Thread fThread; int stackdepth; String qualifiedName = null; @@ -53,34 +51,32 @@ public class VariableObject extends CObject implements ICDIVariableObject { /** * Copy constructor. - * @param obj + * @param desc */ - public VariableObject(VariableObject obj) { - super((Target)obj.getTarget()); - name = obj.getName(); - fullName = obj.fullName; - sizeof = obj.sizeof; - type = obj.type; + public VariableDescriptor(VariableDescriptor desc) { + super((Target)desc.getTarget()); + name = desc.getName(); + fullName = desc.fullName; + sizeof = desc.sizeof; + type = desc.type; try { - frame = obj.getStackFrame(); + fStackFrame = (StackFrame)desc.getStackFrame(); + fThread = (Thread)desc.getThread(); } catch (CDIException e) { } - position = obj.getPosition(); - stackdepth = obj.getStackDepth(); - castingIndex = obj.getCastingArrayStart(); - castingLength = obj.getCastingArrayEnd(); - castingType = obj.getCastingType(); + position = desc.getPosition(); + stackdepth = desc.getStackDepth(); + castingIndex = desc.getCastingArrayStart(); + castingLength = desc.getCastingArrayEnd(); + castingType = desc.getCastingType(); } - public VariableObject(Target target, String n, ICDIStackFrame stack, int pos, int depth) { - this(target, n, null, stack, pos, depth); - } - - public VariableObject(Target target, String n, String fn, ICDIStackFrame stack, int pos, int depth) { + public VariableDescriptor(Target target, Thread thread, StackFrame stack, String n, String fn, int pos, int depth) { super(target); name = n; fullName = fn; - frame = stack; + fStackFrame = stack; + fThread = thread; position = pos; stackdepth = depth; } @@ -149,7 +145,7 @@ public class VariableObject extends CObject implements ICDIVariableObject { } /** - * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableObject#getName() + * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableDescriptor#getName() */ public String getName() { return name; @@ -162,9 +158,14 @@ public class VariableObject extends CObject implements ICDIVariableObject { if (type == null) { Target target = (Target)getTarget(); Session session = (Session) (target.getSession()); - ICDIStackFrame frame = getStackFrame(); + StackFrame frame = (StackFrame)getStackFrame(); if (frame == null) { - frame = target.getCurrentThread().getCurrentStackFrame(); + Thread thread = (Thread)getThread(); + if (thread != null) { + frame = thread.getCurrentStackFrame(); + } else { + frame = ((Thread)target.getCurrentThread()).getCurrentStackFrame(); + } } SourceManager sourceMgr = session.getSourceManager(); String nametype = sourceMgr.getTypeName(frame, getQualifiedName()); @@ -195,12 +196,22 @@ public class VariableObject extends CObject implements ICDIVariableObject { } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#sizeof() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#sizeof() */ public int sizeof() throws CDIException { if (sizeof == null) { Target target = (Target) getTarget(); Session session = (Session) (target.getSession()); + Thread currentThread = (Thread)target.getCurrentThread(); + StackFrame currentFrame = currentThread.getCurrentStackFrame(); + StackFrame frame = (StackFrame)getStackFrame(); + Thread thread = (Thread)getThread(); + if (frame != null) { + target.setCurrentThread(frame.getThread(), false); + ((Thread)frame.getThread()).setCurrentStackFrame(frame, false); + } else if (thread != null) { + target.setCurrentThread(thread, false); + } MISession mi = target.getMISession(); CommandFactory factory = mi.getCommandFactory(); String exp = "sizeof(" + getTypeName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ @@ -209,11 +220,18 @@ public class VariableObject extends CObject implements ICDIVariableObject { mi.postCommand(evaluate); MIDataEvaluateExpressionInfo info = evaluate.getMIDataEvaluateExpressionInfo(); if (info == null) { - throw new CDIException(CdiResources.getString("cdi.model.VariableObject.Target_not_responding")); //$NON-NLS-1$ + throw new CDIException(CdiResources.getString("cdi.model.VariableDescriptor.Target_not_responding")); //$NON-NLS-1$ } sizeof = info.getExpression(); } catch (MIException e) { throw new MI2CDIException(e); + } finally { + if (frame != null) { + target.setCurrentThread(currentThread, false); + currentThread.setCurrentStackFrame(currentFrame, false); + } else if (thread != null) { + target.setCurrentThread(currentThread, false); + } } } @@ -228,28 +246,18 @@ public class VariableObject extends CObject implements ICDIVariableObject { } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#isEdiTable() - */ - public boolean isEditable() throws CDIException { - ICDIType t = getType(); - if (t instanceof ICDIArrayType - || t instanceof ICDIStructType - || t instanceof ICDIVoidType - || t instanceof ICDIFunctionType) { - return false; - } - return true; - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#getStackFrame() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#getStackFrame() */ public ICDIStackFrame getStackFrame() throws CDIException { - return frame; + return fStackFrame; + } + + public ICDIThread getThread() throws CDIException { + return fThread; } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#getTypeName() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#getTypeName() */ public String getTypeName() throws CDIException { if (typename == null) { @@ -260,31 +268,7 @@ public class VariableObject extends CObject implements ICDIVariableObject { } /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#hasChildren() - */ - public boolean hasChildren() throws CDIException { - ICDIType t = getType(); - - // For reference we need to get the referenced type - // to make a decision. - if (t instanceof ICDIReferenceType) { - t = ((ICDIReferenceType) t).getComponentType(); - } - - if (t instanceof ICDIArrayType || t instanceof ICDIStructType) { - return true; - } else if (t instanceof ICDIPointerType) { - ICDIType sub = ((ICDIPointerType) t).getComponentType(); - if (sub instanceof ICDIVoidType) { - return false; - } - return true; - } - return false; - } - - /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#getQualifiedName() + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#getQualifiedName() */ public String getQualifiedName() throws CDIException { if (qualifiedName == null) { @@ -294,34 +278,78 @@ public class VariableObject extends CObject implements ICDIVariableObject { } /** - * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject#equals(ICDIVariableObject) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#equals(ICDIVariableDescriptor) */ - public boolean equals(ICDIVariableObject varObj) { - if (varObj instanceof VariableObject) { - VariableObject var = (VariableObject) varObj; - if (var.getName().equals(getName()) - && var.getCastingArrayStart() == getCastingArrayStart() - && var.getCastingArrayEnd() == getCastingArrayEnd() - && ((var.getCastingType() == null && getCastingType() == null) - || (var.getCastingType() != null && getCastingType() != null && var.getCastingType().equals(getCastingType())))) { - ICDIStackFrame varFrame = null; - ICDIStackFrame ourFrame = null; + public boolean equals(ICDIVariableDescriptor varDesc) { + if (varDesc instanceof VariableDescriptor) { + VariableDescriptor desc = (VariableDescriptor) varDesc; + if (desc.getName().equals(getName()) + && desc.getCastingArrayStart() == getCastingArrayStart() + && desc.getCastingArrayEnd() == getCastingArrayEnd() + && ((desc.getCastingType() == null && getCastingType() == null) + || (desc.getCastingType() != null && getCastingType() != null && desc.getCastingType().equals(getCastingType())))) { + + // Check the threads + ICDIThread varThread = null; + ICDIThread ourThread = null; try { - varFrame = var.getStackFrame(); - ourFrame = getStackFrame(); + varThread = desc.getThread(); + ourThread = getThread(); } catch (CDIException e) { + // ignore } - if (ourFrame == null && varFrame == null) { - return true; - } else if (varFrame != null && ourFrame != null && varFrame.equals(ourFrame)) { - if (var.getStackDepth() == getStackDepth()) { - if (var.getPosition() == getPosition()) { - return true; + if ((ourThread == null && varThread == null) || + (varThread != null && ourThread != null && varThread.equals(ourThread))) { + // check the stackFrames + ICDIStackFrame varFrame = null; + ICDIStackFrame ourFrame = null; + try { + varFrame = desc.getStackFrame(); + ourFrame = getStackFrame(); + } catch (CDIException e) { + // ignore + } + if (ourFrame == null && varFrame == null) { + return true; + } else if (varFrame != null && ourFrame != null && varFrame.equals(ourFrame)) { + if (desc.getStackDepth() == getStackDepth()) { + if (desc.getPosition() == getPosition()) { + return true; + } } } } + return false; } } - return super.equals(varObj); + return super.equals(varDesc); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#getVariableDescriptorAsArray(org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor, int, int) + */ + public ICDIVariableDescriptor getVariableDescriptorAsArray(int start, int length) throws CDIException { + Session session = (Session)getTarget().getSession(); + VariableManager mgr = session.getVariableManager(); + return mgr.getVariableDescriptorAsArray(this, start, length); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#getVariableDescriptorAsType(org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor, java.lang.String) + */ + public ICDIVariableDescriptor getVariableDescriptorAsType(String type) throws CDIException { + Session session = (Session)getTarget().getSession(); + VariableManager mgr = session.getVariableManager(); + return mgr.getVariableDescriptorAsType(this, type); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor#createVariable() + */ + public ICDIVariable createVariable() throws CDIException { + Session session = (Session)getTarget().getSession(); + VariableManager mgr = session.getVariableManager(); + return mgr.createVariable(this); + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateType.java index 30ebf7bde4c..2bb06630061 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/AggregateType.java @@ -11,14 +11,14 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIAggregateType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ public abstract class AggregateType extends Type implements ICDIAggregateType { - public AggregateType(ICDIStackFrame frame, String typename) { + public AggregateType(StackFrame frame, String typename) { super(frame, typename); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java index 4805b700df5..cc4557b0afa 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayType.java @@ -11,9 +11,9 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -24,7 +24,7 @@ public class ArrayType extends DerivedType implements ICDIArrayType { /** * @param typename */ - public ArrayType(ICDIStackFrame frame, String typename,int dim) { + public ArrayType(StackFrame frame, String typename,int dim) { super(frame, typename); dimension = dim; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java index b6958b20f3b..e3c903a0f67 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ArrayValue.java @@ -12,14 +12,15 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDIVariableManager; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; -import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableDescriptor; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayValue; import org.eclipse.cdt.debug.mi.core.cdi.Session; +import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; import org.eclipse.cdt.debug.mi.core.cdi.model.Register; import org.eclipse.cdt.debug.mi.core.cdi.model.Variable; +import org.eclipse.cdt.debug.mi.core.cdi.model.VariableDescriptor; /** * Enter type comment. @@ -72,8 +73,8 @@ public class ArrayValue extends DerivedValue implements ICDIArrayValue { //String subarray = "*(" + variable.getName() + "+" + index + ")@" + length; ICDITarget target = getTarget(); Session session = (Session) (target.getSession()); - ICDIVariableManager mgr = session.getVariableManager(); - ICDIVariableObject vo = mgr.getVariableObjectAsArray(variable, index, length); - return mgr.createVariable(vo).getValue().getVariables(); + VariableManager mgr = session.getVariableManager(); + ICDIVariableDescriptor vo = mgr.getVariableDescriptorAsArray(variable, index, length); + return mgr.createVariable((VariableDescriptor)vo).getValue().getVariables(); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/BoolType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/BoolType.java index 06179cba2b4..40f625dff45 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/BoolType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/BoolType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIBoolType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class BoolType extends IntegralType implements ICDIBoolType { /** * @param typename */ - public BoolType(ICDIStackFrame frame, String typename) { + public BoolType(StackFrame frame, String typename) { this(frame, typename, false); } - public BoolType(ICDIStackFrame frame, String typename, boolean usigned) { + public BoolType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/CharType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/CharType.java index a036c6ac628..b3a8252631a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/CharType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/CharType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDICharType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class CharType extends IntegralType implements ICDICharType { /** * @param typename */ - public CharType(ICDIStackFrame frame, String typename) { + public CharType(StackFrame frame, String typename) { this(frame, typename, false); } - public CharType(ICDIStackFrame frame, String typename, boolean usigned) { + public CharType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java index 935abc5f783..b8194781951 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DerivedType.java @@ -12,11 +12,11 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIDerivedType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; import org.eclipse.cdt.debug.mi.core.cdi.Session; import org.eclipse.cdt.debug.mi.core.cdi.SourceManager; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; /** @@ -25,7 +25,7 @@ public abstract class DerivedType extends Type implements ICDIDerivedType { ICDIType derivedType; - public DerivedType(ICDIStackFrame frame, String typename) { + public DerivedType(StackFrame frame, String typename) { super(frame, typename); } @@ -38,17 +38,17 @@ public abstract class DerivedType extends Type implements ICDIDerivedType { Session session = (Session)target.getSession(); SourceManager sourceMgr = session.getSourceManager(); try { - derivedType = sourceMgr.getType(getStackFrame(), name); + derivedType = sourceMgr.getType((StackFrame)getStackFrame(), name); } catch (CDIException e) { // Try after ptype. try { - String ptype = sourceMgr.getDetailTypeName(getStackFrame(), name); - derivedType = sourceMgr.getType(getStackFrame(), ptype); + String ptype = sourceMgr.getDetailTypeName((StackFrame)getStackFrame(), name); + derivedType = sourceMgr.getType((StackFrame)getStackFrame(), ptype); } catch (CDIException ex) { } } if (derivedType == null) { - derivedType = new IncompleteType(getStackFrame(), name); + derivedType = new IncompleteType((StackFrame)getStackFrame(), name); } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleType.java index 6e2e1f23a03..bbbf4d26e9b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/DoubleType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIDoubleType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class DoubleType extends FloatingPointType implements ICDIDoubleType { /** * @param typename */ - public DoubleType(ICDIStackFrame frame, String typename) { + public DoubleType(StackFrame frame, String typename) { this(frame, typename, false, false, false); } - public DoubleType(ICDIStackFrame frame, String typename, boolean isComplex, boolean isImg, boolean isLong) { + public DoubleType(StackFrame frame, String typename, boolean isComplex, boolean isImg, boolean isLong) { super(frame, typename, isComplex, isImg, isLong); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/EnumType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/EnumType.java index d47c7855233..067919a5608 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/EnumType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/EnumType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIEnumType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class EnumType extends IntegralType implements ICDIEnumType { /** * @param typename */ - public EnumType(ICDIStackFrame frame, String typename) { + public EnumType(StackFrame frame, String typename) { this(frame, typename, false); } - public EnumType(ICDIStackFrame frame, String typename, boolean usigned) { + public EnumType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatType.java index 67d4cd0055b..6af55b31603 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIFloatType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class FloatType extends FloatingPointType implements ICDIFloatType { /** * @param typename */ - public FloatType(ICDIStackFrame frame, String typename) { + public FloatType(StackFrame frame, String typename) { this(frame, typename, false, false); } - public FloatType(ICDIStackFrame frame, String typename, boolean isComplex, boolean isImg) { + public FloatType(StackFrame frame, String typename, boolean isComplex, boolean isImg) { super(frame, typename, isComplex, isImg, false); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointType.java index 26e1c615b11..c2fdc1a9ac1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FloatingPointType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIFloatingPointType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -22,7 +22,7 @@ public abstract class FloatingPointType extends Type implements ICDIFloatingPoin boolean imaginary; boolean islong; - public FloatingPointType(ICDIStackFrame frame, String typename, boolean comp, boolean img, boolean l) { + public FloatingPointType(StackFrame frame, String typename, boolean comp, boolean img, boolean l) { super(frame, typename); complex = comp; imaginary = img; diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java index 6f920cf4547..d46ea905460 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/FunctionType.java @@ -11,9 +11,9 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIFunctionType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,7 +21,7 @@ public class FunctionType extends DerivedType implements ICDIFunctionType { String params = ""; //$NON-NLS-1$ - public FunctionType(ICDIStackFrame frame, String typename) { + public FunctionType(StackFrame frame, String typename) { super(frame, typename); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IncompleteType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IncompleteType.java index e1a6d509528..4530898977d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IncompleteType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IncompleteType.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -20,7 +20,7 @@ public class IncompleteType extends Type { /** * @param name */ - public IncompleteType(ICDIStackFrame frame, String name) { + public IncompleteType(StackFrame frame, String name) { super(frame, name); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntType.java index 1ecc77de8eb..df8a43273cc 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIIntType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class IntType extends IntegralType implements ICDIIntType { /** * @param typename */ - public IntType(ICDIStackFrame frame, String typename) { + public IntType(StackFrame frame, String typename) { this(frame, typename, false); } - public IntType(ICDIStackFrame frame, String typename, boolean isUnsigned) { + public IntType(StackFrame frame, String typename, boolean isUnsigned) { super(frame, typename, isUnsigned); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntegralType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntegralType.java index edf28d9fda2..d314ee54be8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntegralType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/IntegralType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIIntegralType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -20,7 +20,7 @@ public abstract class IntegralType extends Type implements ICDIIntegralType { boolean unSigned; - public IntegralType(ICDIStackFrame frame, String typename, boolean isUnsigned) { + public IntegralType(StackFrame frame, String typename, boolean isUnsigned) { super(frame, typename); unSigned = isUnsigned; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongLongType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongLongType.java index 635225f8077..b0b003a5111 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongLongType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongLongType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDILongLongType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class LongLongType extends IntegralType implements ICDILongLongType { /** * @param typename */ - public LongLongType(ICDIStackFrame frame, String typename) { + public LongLongType(StackFrame frame, String typename) { this(frame, typename, false); } - public LongLongType(ICDIStackFrame frame, String typename, boolean usigned) { + public LongLongType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongType.java index 4606b8803e4..010d1f838b1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/LongType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDILongType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class LongType extends IntegralType implements ICDILongType { /** * @param typename */ - public LongType(ICDIStackFrame frame, String typename) { + public LongType(StackFrame frame, String typename) { this(frame, typename, false); } - public LongType(ICDIStackFrame frame, String typename, boolean usigned) { + public LongType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java index 65446cfa76b..5b0c3c9e683 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/PointerType.java @@ -11,15 +11,15 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIPointerType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ public class PointerType extends DerivedType implements ICDIPointerType { - public PointerType(ICDIStackFrame frame, String typename) { + public PointerType(StackFrame frame, String typename) { super(frame, typename); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceType.java index 71e7a73c428..fd3423cafd9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ReferenceType.java @@ -11,9 +11,9 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIReferenceType; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -22,7 +22,7 @@ public class ReferenceType extends DerivedType implements ICDIReferenceType { /** * @param name */ - public ReferenceType(ICDIStackFrame frame, String name) { + public ReferenceType(StackFrame frame, String name) { super(frame, name); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ShortType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ShortType.java index 6829d8e7ad6..5b37f942001 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ShortType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/ShortType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIShortType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,11 +21,11 @@ public class ShortType extends IntegralType implements ICDIShortType { /** * @param typename */ - public ShortType(ICDIStackFrame frame, String typename) { + public ShortType(StackFrame frame, String typename) { this(frame, typename, false); } - public ShortType(ICDIStackFrame frame, String typename, boolean usigned) { + public ShortType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java index 821a623bb7f..c8a1650e617 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/StructType.java @@ -11,8 +11,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIStructType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -21,7 +21,7 @@ public class StructType extends AggregateType implements ICDIStructType { /** * @param typename */ - public StructType(ICDIStackFrame frame, String typename) { + public StructType(StackFrame frame, String typename) { super(frame, typename); } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/Type.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/Type.java index f90d5963259..6a375953ccf 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/Type.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/Type.java @@ -14,17 +14,18 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType; import org.eclipse.cdt.debug.mi.core.cdi.model.CObject; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; import org.eclipse.cdt.debug.mi.core.cdi.model.Target; /** */ public abstract class Type extends CObject implements ICDIType { - ICDIStackFrame fStackFrame; + StackFrame fStackFrame; String typename; String detailName; - public Type(ICDIStackFrame frame, String name) { + public Type(StackFrame frame, String name) { super((Target)frame.getTarget()); typename = name; fStackFrame = frame; diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/VoidType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/VoidType.java index 13bcb12f450..54b87abae06 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/VoidType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/VoidType.java @@ -11,14 +11,14 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIVoidType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ public class VoidType extends Type implements ICDIVoidType { - public VoidType(ICDIStackFrame frame, String typename) { + public VoidType(StackFrame frame, String typename) { super(frame, typename); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/WCharType.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/WCharType.java index 9fc530b6c2f..ecf24298cf1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/WCharType.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/type/WCharType.java @@ -12,8 +12,8 @@ package org.eclipse.cdt.debug.mi.core.cdi.model.type; -import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame; import org.eclipse.cdt.debug.core.cdi.model.type.ICDIWCharType; +import org.eclipse.cdt.debug.mi.core.cdi.model.StackFrame; /** */ @@ -22,11 +22,11 @@ public class WCharType extends IntegralType implements ICDIWCharType { /** * @param typename */ - public WCharType(ICDIStackFrame frame, String typename) { + public WCharType(StackFrame frame, String typename) { this(frame, typename, false); } - public WCharType(ICDIStackFrame frame, String typename, boolean usigned) { + public WCharType(StackFrame frame, String typename, boolean usigned) { super(frame, typename, usigned); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBCDIDebugger.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBCDIDebugger.java index 28e57b8aa2a..236f8ccb78b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBCDIDebugger.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBCDIDebugger.java @@ -246,7 +246,7 @@ public class GDBCDIDebugger implements ICDIDebugger { protected String renderDebuggerProcessLabel() { String format = "{0} ({1})"; //$NON-NLS-1$ String timestamp = DateFormat.getInstance().format(new Date(System.currentTimeMillis())); - String message = MIPlugin.getResourceString("src.GDBDebugger.Debugger_process"); + String message = MIPlugin.getResourceString("src.GDBDebugger.Debugger_process"); //$NON-NLS-1$ return MessageFormat.format(format, new String[]{message, timestamp}); //$NON-NLS-1$ } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerCDIDebugger.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerCDIDebugger.java index e10e5987021..8f5f46ceaef 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerCDIDebugger.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBServerCDIDebugger.java @@ -107,7 +107,7 @@ public class GDBServerCDIDebugger extends GDBCDIDebugger { */ public Session createAttachSession(ILaunchConfiguration config, IBinaryExecutable exe, IProgressMonitor monitor) throws CoreException { - String msg = MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_attaching_unsupported"); + String msg = MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_attaching_unsupported"); //$NON-NLS-1$ throw newCoreException(msg, null); } @@ -116,7 +116,7 @@ public class GDBServerCDIDebugger extends GDBCDIDebugger { */ public Session createCoreSession(ILaunchConfiguration config, IBinaryExecutable exe, IProgressMonitor monitor) throws CoreException { - String msg = MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_corefiles_unsupported"); + String msg = MIPlugin.getResourceString("src.GDBServerDebugger.GDBServer_corefiles_unsupported"); //$NON-NLS-1$ throw newCoreException(msg, null); }