SBT-instrumentation: A Tool for Configurable Instrumentation of LLVM Bitcode
This tool addresses the need for flexible instrumentation in LLVM-based systems, particularly for memory safety and other applications, but it is incremental as it builds upon existing Symbiotic toolbox components.
The paper introduces sbt-instrumentation, a tool for configurable instrumentation of LLVM bitcode that allows users to insert function calls based on instruction patterns, with features like phased instrumentation and plugin support for external static analysis, developed as part of the Symbiotic toolbox for memory safety checks.
The paper describes a member of the Symbiotic toolbox called sbt-instrumentation, which is a tool for configurable instrumentation of LLVM bitcode. The tool enables a user to specify patterns of instructions and to define functions whose calls will be inserted before or after instructions that match the patterns. Moreover, the tool offers additional functionality. First, the instrumentation can be divided into phases in order to pass information acquired in an earlier phase to the later phases. Second, it can utilize results of some external static analysis by connecting it as a plugin. The sbt-instrumentation tool has been developed as the part of Symbiotic responsible for inserting memory safety checks. However, its configurability opens the way to use it for many various purposes.