1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

2004-09-15 Alain Magloire

The correct thread was not set.
	* cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java
	* cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
	* cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java
This commit is contained in:
Alain Magloire 2004-09-15 19:58:38 +00:00
parent df267e58fa
commit bc6ac94fde
4 changed files with 23 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2004-09-15 Alain Magloire
The correct thread was not set.
* cdi/org/eclipse/cdt/debug/mi/core/cdi/ExpressionManager.java
* cdi/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
* cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Thread.java
2004-09-12 Alain Magloire
Since MISession is attach to the Target, the
way we fire termination events must change also.

View file

@ -134,6 +134,7 @@ public class ExpressionManager extends Manager implements ICDIExpressionManager{
Target target = (Target)frame.getTarget();
ICDIThread currentThread = target.getCurrentThread();
ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(frame.getThread(), false);
frame.getThread().setCurrentStackFrame(frame, false);
try {
MISession mi = target.getMISession();
@ -151,6 +152,7 @@ public class ExpressionManager extends Manager implements ICDIExpressionManager{
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
return expression;

View file

@ -153,6 +153,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
Target target = (Target)frame.getTarget();
ICDIThread currentThread = target.getCurrentThread();
ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(frame.getThread(), false);
frame.getThread().setCurrentStackFrame(frame, false);
try {
MISession miSession = target.getMISession();
@ -166,6 +167,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
} else {
@ -233,6 +235,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
if (stack != null) {
currentThread = target.getCurrentThread();
currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(stack.getThread(), false);
stack.getThread().setCurrentStackFrame(stack, false);
}
try {
@ -251,6 +254,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
throw new MI2CDIException(e);
} finally {
if (currentThread != null) {
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
}
@ -269,6 +273,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
Target target = (Target)frame.getTarget();
ICDIThread currentThread = target.getCurrentThread();
ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(frame.getThread(), false);
frame.getThread().setCurrentStackFrame(frame, false);
try {
MISession mi = target.getMISession();
@ -297,7 +302,8 @@ public class VariableManager extends Manager implements ICDIVariableManager {
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
currentThread.setCurrentStackFrame(currentFrame);
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
return (ICDIArgumentObject[]) argObjects.toArray(new ICDIArgumentObject[0]);
}
@ -394,6 +400,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
Target target = (Target)frame.getTarget();
ICDIThread currentThread = target.getCurrentThread();
ICDIStackFrame currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(frame.getThread(), false);
frame.getThread().setCurrentStackFrame(frame, false);
try {
MISession mi = target.getMISession();
@ -416,6 +423,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
} catch (MIException e) {
throw new MI2CDIException(e);
} finally {
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
return (ICDIVariableObject[]) varObjects.toArray(new ICDIVariableObject[0]);
@ -453,6 +461,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
if (stack != null) {
currentThread = target.getCurrentThread();
currentFrame = currentThread.getCurrentStackFrame();
target.setCurrentThread(stack.getThread(), false);
stack.getThread().setCurrentStackFrame(stack, false);
}
try {
@ -471,6 +480,7 @@ public class VariableManager extends Manager implements ICDIVariableManager {
throw new MI2CDIException(e);
} finally {
if (currentThread != null) {
target.setCurrentThread(currentThread, false);
currentThread.setCurrentStackFrame(currentFrame, false);
}
}

View file

@ -254,6 +254,9 @@ public class Thread extends CObject implements ICDIThread {
* @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#setCurrentStackFrame(ICDIStackFrame, boolean)
*/
public void setCurrentStackFrame(ICDIStackFrame stackframe, boolean doUpdate) throws CDIException {
// Assert we should assert that the stackframe is one of our frames.
int frameLevel = 0;
if (stackframe != null) {
frameLevel = stackframe.getLevel();