mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Started work on optimizing stepping.
This commit is contained in:
parent
fb0fd74800
commit
32b8c9157f
2 changed files with 42 additions and 8 deletions
|
@ -17,7 +17,13 @@ import org.eclipse.dd.dsf.model.IDataModelService;
|
||||||
*/
|
*/
|
||||||
public interface IRunControl extends IDataModelService
|
public interface IRunControl extends IDataModelService
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Amount of time in seconds, that it takes the ISteppingTimedOutEvent event to
|
||||||
|
* be issued after a step is started.
|
||||||
|
* @see ISteppingTimedOutEvent
|
||||||
|
*/
|
||||||
|
public final static int STEPPING_TIMEOUT = 5;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execution context is the object on which run control operations can be
|
* Execution context is the object on which run control operations can be
|
||||||
* performed. A lot of higher-level services reference this context to build
|
* performed. A lot of higher-level services reference this context to build
|
||||||
|
@ -50,18 +56,34 @@ public interface IRunControl extends IDataModelService
|
||||||
public interface IContainerResumedEvent extends IDataModelEvent<IExecutionDMC> {
|
public interface IContainerResumedEvent extends IDataModelEvent<IExecutionDMC> {
|
||||||
StateChangeReason getReason();
|
StateChangeReason getReason();
|
||||||
}
|
}
|
||||||
public interface IStartedEvent extends IDataModelEvent<IExecutionDMC> {
|
|
||||||
IExecutionDMC getExecutionContext();
|
|
||||||
}
|
|
||||||
public interface IExitedEvent extends IDataModelEvent<IExecutionDMC> {
|
|
||||||
IExecutionDMC getExecutionContext();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that a new execution context (thread) was started. The DMC
|
||||||
|
* for the event is the container of the new exec context.
|
||||||
|
*/
|
||||||
|
public interface IStartedEvent extends IDataModelEvent<IContainerDMC> {
|
||||||
|
IExecutionDMC getExecutionContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that an execution context has exited. As in the started event,
|
||||||
|
* the DMC for the event is the container of the exec context.
|
||||||
|
*/
|
||||||
|
public interface IExitedEvent extends IDataModelEvent<IContainerDMC> {
|
||||||
|
IExecutionDMC getExecutionContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that the given context has been stepping for some time,
|
||||||
|
* and the UI (views and actions) may need to be updated accordingly.
|
||||||
|
*/
|
||||||
|
public interface ISteppingTimedOutEvent extends IDataModelEvent<IExecutionDMC> {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display information for an execution context.
|
* Display information for an execution context.
|
||||||
*/
|
*/
|
||||||
public interface IExecutionData extends IDataModelData {
|
public interface IExecutionData extends IDataModelData {
|
||||||
boolean isSuspended();
|
|
||||||
StateChangeReason getStateChangeReason();
|
StateChangeReason getStateChangeReason();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +103,7 @@ public interface IRunControl extends IDataModelService
|
||||||
void suspend(IExecutionDMC context, Done done);
|
void suspend(IExecutionDMC context, Done done);
|
||||||
public enum StepType { STEP_OVER, STEP_INTO, STEP_RETURN };
|
public enum StepType { STEP_OVER, STEP_INTO, STEP_RETURN };
|
||||||
boolean isStepping(IExecutionDMC context);
|
boolean isStepping(IExecutionDMC context);
|
||||||
|
boolean isSteppingTimedOut(IExecutionDMC context);
|
||||||
boolean canStep(IExecutionDMC context);
|
boolean canStep(IExecutionDMC context);
|
||||||
void step(IExecutionDMC context, StepType stepType, Done done);
|
void step(IExecutionDMC context, StepType stepType, Done done);
|
||||||
boolean canInstructionStep(IExecutionDMC context);
|
boolean canInstructionStep(IExecutionDMC context);
|
||||||
|
|
|
@ -61,6 +61,17 @@ public interface IStack extends IDataModelService {
|
||||||
*/
|
*/
|
||||||
void getFrames(IRunControl.IExecutionDMC execContext, GetDataDone<IFrameDMC[]> done);
|
void getFrames(IRunControl.IExecutionDMC execContext, GetDataDone<IFrameDMC[]> done);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the top stack frame for the given execution context.
|
||||||
|
* Retrieving just the top frame DMC and corresponding data can be much
|
||||||
|
* more efficient than just retrieving the whole stack, before the data
|
||||||
|
* is often included in the stopped event. Also for some UI functionality,
|
||||||
|
* such as setpping, only top stack frame is often needed.
|
||||||
|
* @param execContext
|
||||||
|
* @param done
|
||||||
|
*/
|
||||||
|
void getTopFrame(IRunControl.IExecutionDMC execContext, GetDataDone<IFrameDMC> done);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves variables which were arguments to the stack frame's function.
|
* Retrieves variables which were arguments to the stack frame's function.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue