mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-17 05:55:22 +02:00
Bug 136206: Suppress Resumed events when processing solib events.
This commit is contained in:
parent
2abef07854
commit
310afa2c6b
5 changed files with 32 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2006-04-12 Mikhail Khodjaiants
|
||||||
|
Bug 136206: Suppress Resumed events when processing solib events.
|
||||||
|
* EventManager.java
|
||||||
|
* RxThread.java
|
||||||
|
* Command.java
|
||||||
|
* MIEvent.java
|
||||||
|
|
||||||
2006-04-12 Mikhail Khodjaiants
|
2006-04-12 Mikhail Khodjaiants
|
||||||
Bug 119740: allow to specify only a subset of shared objects that we want symbols to be loaded for.
|
Bug 119740: allow to specify only a subset of shared objects that we want symbols to be loaded for.
|
||||||
Support for deferred breakpoints.
|
Support for deferred breakpoints.
|
||||||
|
|
|
@ -399,9 +399,10 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
break;
|
break;
|
||||||
case MIRunningEvent.RETURN:
|
case MIRunningEvent.RETURN:
|
||||||
lastUserCommand = factory.createMIExecReturn();
|
lastUserCommand = factory.createMIExecReturn();
|
||||||
break;
|
break;
|
||||||
case MIRunningEvent.CONTINUE: {
|
case MIRunningEvent.CONTINUE: {
|
||||||
MIExecContinue cont = factory.createMIExecContinue();
|
MIExecContinue cont = factory.createMIExecContinue();
|
||||||
|
cont.setQuiet(true);
|
||||||
try {
|
try {
|
||||||
miSession.postCommand(cont);
|
miSession.postCommand(cont);
|
||||||
MIInfo info = cont.getMIInfo();
|
MIInfo info = cont.getMIInfo();
|
||||||
|
@ -462,6 +463,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
if (miLevel >= 0) {
|
if (miLevel >= 0) {
|
||||||
MIStackSelectFrame selectFrame = factory.createMIStackSelectFrame(miLevel);
|
MIStackSelectFrame selectFrame = factory.createMIStackSelectFrame(miLevel);
|
||||||
MIExecFinish finish = factory.createMIExecFinish();
|
MIExecFinish finish = factory.createMIExecFinish();
|
||||||
|
finish.setQuiet(true);
|
||||||
try {
|
try {
|
||||||
miSession.postCommand(selectFrame);
|
miSession.postCommand(selectFrame);
|
||||||
miSession.postCommand(finish);
|
miSession.postCommand(finish);
|
||||||
|
@ -473,6 +475,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
// for example the StopEventLib was on a different thread
|
// for example the StopEventLib was on a different thread
|
||||||
// redo the last command.
|
// redo the last command.
|
||||||
Command cmd = lastUserCommand;
|
Command cmd = lastUserCommand;
|
||||||
|
cmd.setQuiet(true);
|
||||||
lastUserCommand = null;
|
lastUserCommand = null;
|
||||||
try {
|
try {
|
||||||
miSession.postCommand(cmd);
|
miSession.postCommand(cmd);
|
||||||
|
@ -483,6 +486,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
return true;
|
return true;
|
||||||
} else if (lastUserCommand != null) {
|
} else if (lastUserCommand != null) {
|
||||||
Command cmd = lastUserCommand;
|
Command cmd = lastUserCommand;
|
||||||
|
cmd.setQuiet(true);
|
||||||
lastUserCommand = null;
|
lastUserCommand = null;
|
||||||
try {
|
try {
|
||||||
miSession.postCommand(cmd);
|
miSession.postCommand(cmd);
|
||||||
|
@ -516,7 +520,7 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
currentTarget.setSupended(false);
|
currentTarget.setSupended(false);
|
||||||
|
|
||||||
// Bailout early if we do not want to process any events.
|
// Bailout early if we do not want to process any events.
|
||||||
if (!isAllowingProcessingEvents()) {
|
if (!isAllowingProcessingEvents() || !running.propagate()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -201,6 +201,8 @@ public class RxThread extends Thread {
|
||||||
}
|
}
|
||||||
session.getMIInferior().setRunning();
|
session.getMIInferior().setRunning();
|
||||||
MIEvent event = new MIRunningEvent(session, id, type);
|
MIEvent event = new MIRunningEvent(session, id, type);
|
||||||
|
if (cmd.isQuiet())
|
||||||
|
event.setPropagate(false);
|
||||||
list.add(event);
|
list.add(event);
|
||||||
} else if ("exit".equals(state)) { //$NON-NLS-1$
|
} else if ("exit".equals(state)) { //$NON-NLS-1$
|
||||||
// No need to do anything, terminate() will.
|
// No need to do anything, terminate() will.
|
||||||
|
|
|
@ -27,6 +27,7 @@ public abstract class Command
|
||||||
|
|
||||||
int token = 0;
|
int token = 0;
|
||||||
MIOutput output;
|
MIOutput output;
|
||||||
|
boolean quiet = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A global counter for all command, the token
|
* A global counter for all command, the token
|
||||||
|
@ -104,4 +105,11 @@ public abstract class Command
|
||||||
throw new MIException(mesg, details);
|
throw new MIException(mesg, details);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isQuiet() {
|
||||||
|
return this.quiet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQuiet( boolean quiet ) {
|
||||||
|
this.quiet = quiet;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
public abstract class MIEvent extends EventObject {
|
public abstract class MIEvent extends EventObject {
|
||||||
|
|
||||||
int token;
|
int token;
|
||||||
|
boolean propagate = true;
|
||||||
|
|
||||||
public MIEvent(MISession session, int token) {
|
public MIEvent(MISession session, int token) {
|
||||||
super(session);
|
super(session);
|
||||||
|
@ -32,4 +33,12 @@ public abstract class MIEvent extends EventObject {
|
||||||
public MISession getMISession() {
|
public MISession getMISession() {
|
||||||
return (MISession)getSource();
|
return (MISession)getSource();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean propagate() {
|
||||||
|
return propagate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPropagate( boolean propagate ) {
|
||||||
|
this.propagate = propagate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue