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:
parent
b6e4d9c3cf
commit
0a3dfda3fd
2 changed files with 7 additions and 1 deletions
|
@ -738,4 +738,9 @@ public abstract class AbstractMIControl extends AbstractDsfService
|
|||
public void resetCurrentThreadLevel(){
|
||||
fCurrentThreadId = -1;
|
||||
}
|
||||
|
||||
public void resetCurrentStackLevel(){
|
||||
fCurrentStackLevel = -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue