trait MonitorInstructionsTracker extends MonitorInstructionsDomain with CustomInitialization
Tracks if a monitor(enter|exit) instruction was executed.
This knowledge is of interest to decide, e.g., whether a return instruction
may throw an IllegalMonitorStateException
or not.
- Self Type
- MonitorInstructionsTracker with ValuesDomain with ExceptionsFactory with Configuration
- Source
- MonitorInstructionsTracker.scala
- Alphabetic
- By Inheritance
- MonitorInstructionsTracker
- CustomInitialization
- MonitorInstructionsDomain
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def initProperties(code: Code, cfJoins: IntTrieSet, initialLocals: (MonitorInstructionsTracker.this)#Locals): Unit
Override this method to perform custom initialization steps.
Override this method to perform custom initialization steps.
Always use
abstract override
and call the super method; it is recommended to complete the initialization of this domain before calling the super method.- Definition Classes
- MonitorInstructionsTracker → CustomInitialization
- def isMonitorInstructionUsed: Boolean
- def monitorenter(pc: Int, value: (MonitorInstructionsTracker.this)#DomainValue): Computation[Nothing, (MonitorInstructionsTracker.this)#ExceptionValue]
Handles a
monitorenter
instruction.Handles a
monitorenter
instruction.- Definition Classes
- MonitorInstructionsTracker → MonitorInstructionsDomain
- Note
A monitor enter instruction may throw a
NullPointerException
.
- def monitorexit(pc: Int, value: (MonitorInstructionsTracker.this)#DomainValue): Computation[Nothing, (MonitorInstructionsTracker.this)#ExceptionValues]
Handles a
monitorexit
instruction.Handles a
monitorexit
instruction.- Definition Classes
- MonitorInstructionsTracker → MonitorInstructionsDomain
- Note
A monitor exit instruction may throw a
NullPointerException
or anIllegalMonitorStateException
.