BISM: Bytecode-Level Instrumentation for Software Monitoring
This is an incremental improvement for developers needing efficient software monitoring tools.
The paper tackles the problem of software monitoring by introducing BISM, a lightweight bytecode instrumentation tool with a high-level control-flow-aware language, and demonstrates its effectiveness through experiments showing low runtime and memory overheads.
BISM (Bytecode-Level Instrumentation for Software Monitoring) is a lightweight bytecode instrumentation tool that features an expressive high-level control-flow-aware instrumentation language. The language follows the aspect-oriented programming paradigm by adopting the joinpoint model, advice inlining, and separate instrumentation mechanisms. BISM provides joinpoints ranging from bytecode instruction to method execution, access to comprehensive static and dynamic context information, and instrumentation methods. BISM runs in two instrumentation modes: build-time and load-time. We demonstrate BISM effectiveness using two experiments: a security scenario and a general runtime verification case. The results show that BISM instrumentation incurs low runtime and memory overheads.