Interface Step
- All Superinterfaces:
Comparable<Step>
- All Known Implementing Classes:
AbstractStep,PatchStep,SkipStep,TickStep
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidclone()longcoalescePatches(Language language, List<Step> steps) compareStep(Step that) Richly compare this step to anotherdefault CompareResultcompareStepType(Step that) default intvoidexecute(PcodeThread<?> emuThread, Stepper stepper, TaskMonitor monitor) default TraceThreadexecute(TraceThreadManager tm, TraceThread eventThread, PcodeMachine<?> machine, Stepper stepper, TaskMonitor monitor) longlongdefault TraceThreadgetThread(TraceThreadManager tm, TraceThread eventThread) longlonggetType()default intbooleanisCompatible(Step step) Check if the given step can be combined with this onedefault booleanbooleanisNop()static TickStepnop()static Stepparse(long threadKey, String stepSpec, TraceSchedule.TimeRadix radix) Parse a step for the given thread keystatic Stepparse(String stepSpec, TraceSchedule.TimeRadix radix) Parse a step, possibly including a thread prefix, e.g.,"t1-..."static TraceThreadrequireThread(TraceThread thread, long key) longrewind(long count) Subtract from the count of this steptoString(TraceSchedule.TimeRadix radix)
-
Method Details
-
parse
Parse a step, possibly including a thread prefix, e.g.,"t1-..."If the thread prefix is given, the step applies to the given thread. Otherwise, the step applies to the last thread or the event thread.
- Parameters:
stepSpec- the string specificationradix- the radix- Returns:
- the parsed step
- Throws:
IllegalArgumentException- if the specification is of the wrong form
-
parse
Parse a step for the given thread keyThe form of the spec must either be numeric, indicating some number of ticks, or brace-enclosed Sleigh code, e.g.,
"{r0=0x1234}". The latter allows patching machine state during execution.- Parameters:
threadKey- the thread to step, or -1 for the last thread or event threadstepSpec- the string specificationradix- the radix- Returns:
- the parsed step
- Throws:
IllegalArgumentException- if the specification is of the wrong form
-
nop
-
toString
-
getType
Step.StepType getType() -
getTypeOrder
default int getTypeOrder() -
isNop
boolean isNop() -
getThreadKey
long getThreadKey() -
isEventThread
default boolean isEventThread() -
requireThread
-
getThread
-
getTickCount
long getTickCount() -
getSkipCount
long getSkipCount() -
getPatchCount
long getPatchCount() -
isCompatible
Check if the given step can be combined with this oneTwo steps applied to the same thread can just be summed. If the given step applies to the "last thread" or to the same thread as this step, then it can be combined.
- Parameters:
step- the second step- Returns:
- true if combinable, false otherwise.
-
addTo
-
subtract
-
clone
Step clone() -
rewind
long rewind(long count) Subtract from the count of this stepIf this step has a count exceeding that given, then this method simply subtracts the given number from the
tickCountand returns the (negative) difference. If this step has exactly the count given, this method sets the count to 0 and returns 0, indicating this step should be removed from the sequence. If the given count exceeds that of this step, this method sets the count to 0 and returns the (positive) difference, indicating this step should be removed from the sequence, and the remaining steps rewound from the preceding step.- Parameters:
count- the count to rewind- Returns:
- the number of steps remaining
-
compareStep
Richly compare this step to another- Parameters:
that- the object of comparison (this being the subject)- Returns:
- a result describing the relationship from subject to object
-
compareStepType
-
compareTo
- Specified by:
compareToin interfaceComparable<Step>
-
execute
default TraceThread execute(TraceThreadManager tm, TraceThread eventThread, PcodeMachine<?> machine, Stepper stepper, TaskMonitor monitor) throws CancelledException - Throws:
CancelledException
-
execute
void execute(PcodeThread<?> emuThread, Stepper stepper, TaskMonitor monitor) throws CancelledException - Throws:
CancelledException
-
coalescePatches
-