1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 230434

When stepping a stack frame that is not the top level, GDB switches to the top level frame first.  Therefore, when we get a stopped event, we are not sure what the frame is, in GDB, so we should reset it internally.
This commit is contained in:
Marc Khouzam 2008-05-08 13:31:45 +00:00
parent b6e4d9c3cf
commit 0a3dfda3fd
2 changed files with 7 additions and 1 deletions

View file

@ -738,4 +738,9 @@ public abstract class AbstractMIControl extends AbstractDsfService
public void resetCurrentThreadLevel(){
fCurrentThreadId = -1;
}
public void resetCurrentStackLevel(){
fCurrentStackLevel = -1;
}
}

View file

@ -108,9 +108,10 @@ public class MIRunControlEventProcessor
// Change of state.
String state = exec.getAsyncClass();
if ("stopped".equals(state)) { //$NON-NLS-1$
// Re-set the thread level to -1 when stopped event is recvd.
// Re-set the thread and stack level to -1 when stopped event is recvd.
// This is to synchronize the state between GDB back-end and AbstractMIControl.
fCommandControl.resetCurrentThreadLevel();
fCommandControl.resetCurrentStackLevel();
List<MIEvent<?>> events = new LinkedList<MIEvent<?>>();
MIResult[] results = exec.getMIResults();