trait
ConsoleEvaluationTracer extends AITracer
Abstract Value Members
-
abstract
def
deadLocalVariable(domain: Domain)(pc: PC, lvIndex: Int): Unit
-
abstract
def
initialLocals(domain: Domain)(locals: Domain.Locals): Unit
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
def
abruptMethodExecution(domain: Domain)(pc: Int, exception: Domain.ExceptionValue): Unit
-
def
abruptSubroutineTermination(domain: Domain)(sourcePC: PC, targetPC: PC, jumpToSubroutineId: Int, terminatedSubroutinesCount: Int, oldWorklist: Chain[PC], newWorklist: Chain[PC]): Unit
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
def
continuingInterpretation(code: Code, domain: Domain)(initialWorkList: Chain[PC], alreadyEvaluated: Chain[PC], operandsArray: Domain.OperandsArray, localsArray: Domain.LocalsArray, memoryLayoutBeforeSubroutineCall: Chain[(PC, Domain.OperandsArray, Domain.LocalsArray)]): Unit
-
def
domainMessage(domain: Domain, source: Class[_], typeID: String, pc: Option[PC], message: ⇒ String): Unit
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
establishedConstraint(domain: Domain)(pc: PC, effectivePC: PC, operands: Domain.Operands, locals: Domain.Locals, newOperands: Domain.Operands, newLocals: Domain.Locals): Unit
-
def
finalize(): Unit
-
def
flow(domain: Domain)(currentPC: PC, targetPC: PC, isExceptionalControlFlow: Boolean): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
def
instructionEvalution(domain: Domain)(pc: PC, instruction: Instruction, operands: Domain.Operands, locals: Domain.Locals): Unit
-
final
def
isInstanceOf[T0]: Boolean
-
def
join(domain: Domain)(pc: PC, thisOperands: Domain.Operands, thisLocals: Domain.Locals, otherOperands: Domain.Operands, otherLocals: Domain.Locals, result: Update[(Domain.Operands, Domain.Locals)]): Unit
-
def
jumpToSubroutine(domain: Domain)(pc: PC, target: PC, nestingLevel: Int): Unit
-
final
def
ne(arg0: AnyRef): Boolean
-
def
noFlow(domain: Domain)(currentPC: PC, targetPC: PC): Unit
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
rescheduled(domain: Domain)(sourcePC: PC, targetPC: PC, isExceptionalControlFlow: Boolean, worklist: Chain[PC]): Unit
-
def
reset(): Unit
-
def
result(result: AIResult): Unit
-
def
ret(domain: Domain)(pc: PC, returnAddress: PC, oldWorklist: Chain[PC], newWorklist: Chain[PC]): Unit
-
def
returnFromSubroutine(domain: Domain)(pc: PC, returnAddress: PC, subroutineInstructions: Chain[PC]): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AITracer
Inherited from AnyRef
Inherited from Any
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.