Reducing Instrumentation Overhead when Reverse-Engineering Object Interactions
Technical Report SCE-15-02
Reverse-engineering object interactions from source code can be done through static, dynamic, or hybrid (static plus dynamic) analyses. In the latter two, monitoring a program and collecting runtime information translates into some overhead during program execution. Depending on the type of application, the imposed overhead can reduce the precision and accuracy of the reverse-engineered object interactions (the larger the overhead the less precise or accurate the reverse-engineered interactions), to such an extent that the reverse-engineered interactions may not be correct, especially when reverse-engineering a multithreaded software system. One is therefore seeking an instrumentation strategy as less intrusive as possible. In our past work, we showed that a hybrid approach is one step towards such a solution, compared to a purely dynamic approach, and that there is room for improvements. In this paper, we uncover, in a systematic way, other aspects of the dynamic analysis that can be improved to further reduce runtime overhead, and study alternative solutions. Our experiments show effective overhead reduction thanks to a modified procedure to collect runtime information.
|Keywords||Reverse engineering, Overhead, Multithreaded, Hybrid analysis, Object interactions, Logging.|
|Publisher||Department of Systems and Computer Engineering|
|Series||SCE Technical Reports|
Mehrfard, H. (Hossein), & Labiche, Y. (2015). Reducing Instrumentation Overhead when Reverse-Engineering Object Interactions. SCE Technical Reports. Department of Systems and Computer Engineering.