TY - GEN
T1 - Instrew
T2 - 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2020
AU - Engelke, Alexis
AU - Schulz, Martin
N1 - Publisher Copyright:
© 2020 ACM.
PY - 2020/3/17
Y1 - 2020/3/17
N2 - Dynamic binary instrumentation frameworks are popular tools to enhance programs with additional analysis, debugging, or profiling facilities or to add optimizations or translations without requiring recompilation or access to source code. They analyze the binary code, translate into a--Typically low-level--intermediate representation, add the needed instrumentation or transformation and then generate new code on-demand and at run-Time. Most tools thereby focus on a fast code rewriting process at the cost of lower quality code, leading to a significant slowdown in the instrumented code. Further, most tools run in the application's address space, making their development cumbersome. We propose a novel dynamic binary instrumentation framework, Instrew, which closes these gaps by (a) leveraging the LLVM compiler infrastructure for high-quality code optimization and generation and (b) enables process isolation between the target code and the instrumenter. Instead of using our own non-portable and low-level intermediate representation, our framework directly lifts the original machine code into LLVM-IR, where instrumentation and behavioral changes may be performed, and from which high quality code can be produced. Results on the SPEC CPU2017 benchmarks show that the rewriting overhead is only 1/5 of the overhead incurred using the state-of-The-Art toolchain Valgrind.
AB - Dynamic binary instrumentation frameworks are popular tools to enhance programs with additional analysis, debugging, or profiling facilities or to add optimizations or translations without requiring recompilation or access to source code. They analyze the binary code, translate into a--Typically low-level--intermediate representation, add the needed instrumentation or transformation and then generate new code on-demand and at run-Time. Most tools thereby focus on a fast code rewriting process at the cost of lower quality code, leading to a significant slowdown in the instrumented code. Further, most tools run in the application's address space, making their development cumbersome. We propose a novel dynamic binary instrumentation framework, Instrew, which closes these gaps by (a) leveraging the LLVM compiler infrastructure for high-quality code optimization and generation and (b) enables process isolation between the target code and the instrumenter. Instead of using our own non-portable and low-level intermediate representation, our framework directly lifts the original machine code into LLVM-IR, where instrumentation and behavioral changes may be performed, and from which high quality code can be produced. Results on the SPEC CPU2017 benchmarks show that the rewriting overhead is only 1/5 of the overhead incurred using the state-of-The-Art toolchain Valgrind.
KW - LLVM
KW - client/server model
KW - dynamic binary instrumentation
KW - dynamic binary translation
KW - optimization
UR - http://www.scopus.com/inward/record.url?scp=85082857596&partnerID=8YFLogxK
U2 - 10.1145/3381052.3381319
DO - 10.1145/3381052.3381319
M3 - Conference contribution
AN - SCOPUS:85082857596
T3 - VEE 2020 - Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
SP - 172
EP - 184
BT - VEE 2020 - Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
PB - Association for Computing Machinery, Inc
Y2 - 17 March 2020
ER -