TY - JOUR
T1 - Efficient function call tracing with link-time binary rewriting for CE devices
AU - Seo, Bon Keun
AU - Jeong, Jinkyu
AU - Lee, Joonwon
AU - Seo, Euiseong
PY - 2013/11
Y1 - 2013/11
N2 - As the scale and complexity of software components in consumer electronics increase, the importance of performance optimization is rapidly growing. Consequently, the demand for performance optimization tools tailored for the consumer electronics environment is stronger than ever. A function call tracer is a vital tool for investigating relationships between functions, invocation counts of a function, and elapsed time in a function. Despite its importance in performance optimization, the limited capability of embedded hardware prohibits use of existing dynamic binary instrumentation tools. Moreover, the use of closed proprietary components excludes source-level analysis tools out of viable options. In this paper, LITIFUT, a function call tracer designed for consumer electronics, is proposed. This tool rewrites an executable file or a library file to inject profiling code during the linking stage. This approach achieves as little performance overhead as source-level instrumentation and as minor developer-intervention as binary-level instrumentation. The prototype implementation supports the two most popular embedded processor architectures. The evaluation with a real-world embedded software application showed that LITIFUT successfully profiles program activities with insignificant overhead.
AB - As the scale and complexity of software components in consumer electronics increase, the importance of performance optimization is rapidly growing. Consequently, the demand for performance optimization tools tailored for the consumer electronics environment is stronger than ever. A function call tracer is a vital tool for investigating relationships between functions, invocation counts of a function, and elapsed time in a function. Despite its importance in performance optimization, the limited capability of embedded hardware prohibits use of existing dynamic binary instrumentation tools. Moreover, the use of closed proprietary components excludes source-level analysis tools out of viable options. In this paper, LITIFUT, a function call tracer designed for consumer electronics, is proposed. This tool rewrites an executable file or a library file to inject profiling code during the linking stage. This approach achieves as little performance overhead as source-level instrumentation and as minor developer-intervention as binary-level instrumentation. The prototype implementation supports the two most popular embedded processor architectures. The evaluation with a real-world embedded software application showed that LITIFUT successfully profiles program activities with insignificant overhead.
KW - Binary rewrite
KW - Embedded systems
KW - Function call tracing
KW - Static instrumentation
UR - http://www.scopus.com/inward/record.url?scp=84891759936&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84891759936&partnerID=8YFLogxK
U2 - 10.1109/TCE.2013.6689704
DO - 10.1109/TCE.2013.6689704
M3 - Article
AN - SCOPUS:84891759936
SN - 0098-3063
VL - 59
SP - 892
EP - 900
JO - IEEE Transactions on Consumer Electronics
JF - IEEE Transactions on Consumer Electronics
IS - 4
M1 - 6689704
ER -