trait ConsoleEvaluationTracer extends AITracer
A tracer that primarily prints out the evaluation order of the instructions on the console. This tracer is particularly useful to understand the handling of JSR/RET instructions.
If you want to reuse this tracer to trace evaluations of different methods
you should call the reset method between two calls.
Thread Safety
This tracer has internal state that is dependent on the state of the evaluation.
Hence, this class is not thread safe and a new AI instance should be used per
method that is analyzed.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- ConsoleEvaluationTracer
- AITracer
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
abruptMethodExecution(domain: Domain)(pc: Int, exception: ai.Domain.ExceptionValue): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
abruptSubroutineTermination(domain: Domain)(details: String, sourcePC: Int, targetPC: Int, jumpToSubroutineId: Int, terminatedSubroutinesCount: Int, forceScheduling: Boolean, oldWorklist: Chain[Int], newWorklist: Chain[Int]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
continuingInterpretation(code: Code, domain: Domain)(initialWorkList: Chain[Int], alreadyEvaluatedPCs: IntArrayStack, operandsArray: ai.Domain.OperandsArray, localsArray: ai.Domain.LocalsArray, memoryLayoutBeforeSubroutineCall: Chain[(Int, ai.Domain.OperandsArray, ai.Domain.LocalsArray)]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
deadLocalVariable(domain: Domain)(pc: Int, lvIndex: Int): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
domainMessage(domain: Domain, source: Class[_], typeID: String, pc: Option[Int], message: ⇒ String): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
establishedConstraint(domain: Domain)(pc: Int, effectivePC: Int, operands: ai.Domain.Operands, locals: ai.Domain.Locals, newOperands: ai.Domain.Operands, newLocals: ai.Domain.Locals): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
flow(domain: Domain)(currentPC: Int, targetPC: Int, isExceptionalControlFlow: Boolean): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
initialLocals(domain: Domain)(locals: ai.Domain.Locals): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
instructionEvalution(domain: Domain)(pc: Int, instruction: Instruction, operands: ai.Domain.Operands, locals: ai.Domain.Locals): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
join(domain: Domain)(pc: Int, thisOperands: ai.Domain.Operands, thisLocals: ai.Domain.Locals, otherOperands: ai.Domain.Operands, otherLocals: ai.Domain.Locals, result: Update[(ai.Domain.Operands, ai.Domain.Locals)]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
jumpToSubroutine(domain: Domain)(pc: Int, targetPC: Int, nestingLevel: Int): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
noFlow(domain: Domain)(currentPC: Int, targetPC: Int): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
rescheduled(domain: Domain)(sourcePC: Int, targetPC: Int, isExceptionalControlFlow: Boolean, worklist: Chain[Int]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
- def reset(): Unit
-
def
result(result: AIResult): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
ret(domain: Domain)(pc: Int, returnAddressPC: Int, oldWorklist: Chain[Int], newWorklist: Chain[Int]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
def
returnFromSubroutine(domain: Domain)(pc: Int, returnAddressPC: Int, subroutinePCs: Chain[Int]): Unit
- Definition Classes
- ConsoleEvaluationTracer → AITracer
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated