@inproceedings{86, author = {Pansy Arafa and Hany Kashif and Sebastian Fischmeister}, title = {DIME: Time-aware Dynamic Binary Instrumentation Using Rate-based Resource Allocation}, abstract = {
Program analysis tools are essential for understanding programs, analyzing performance, and optimizing code. Some of these tools use code instrumentation to extract information at runtime. The instrumentation process can alter program behavior such as timing behavior and memory consumption. Time-sensitive programs, however, must meet specific timing constraints and thus require that the instrumentation process, for instance, bounds the timing overhead. Time-aware instrumentation techniques try to honor the timing constraints of such programs. All previous techniques, however, support only static and source-code instrumentation methods. Hence, they become impractical beyond microcontroller code for instrumenting large programs along with all their library dependencies.
In this work, we propose DIME, a time-aware dynamic binary instrumentation technique that adds an adjustable bound on the timing overhead to the program under analysis. We implement DIME using the dynamic instrumentation framework, Pin. Quantitative evaluation of the three implementation alternatives shows an average reduction of the instrumentation overhead by 3, 9, and 16 folds for complex instrumentation objectives. Instrumenting the VLC media player and a laser beam stabilization experiment demonstrate the practicality and scalability of DIME.