@inproceedings {74, title = {Program Transformation for Time-aware Instrumentation}, booktitle = {Proc. of the 17th IEEE International Conference on Emerging Technologies \& Factory Automation (ETFA)}, year = {2012}, month = {September}, pages = {1-8}, address = {Krakow, Poland}, abstract = {

Instrumentation is an important technique to gain insight into a program\’s behavior. Safety-critical real-time embedded applications are time sensitive and so instrumentation techniques for this domain must especially consider timing. This work establishes the basis for measuring the effectiveness of approaches for time-aware instrumentation in addition to coverage. We define a metric and define its optimality criterion. We identify locations in the program where program transformation techniques can be applied to increase the instrumentability of the program. We subsequently use the proposed metric to evaluate two tranformation methods that improve the effectiveness and coverage of current techniques for time-aware instrumentation by a factor of five.

}, keywords = {Instrumentation, time-aware instrumentation, tracing}, doi = {10.1109/ETFA.2012.6489580}, author = {Hany Kashif and Sebastian Fischmeister} } @inproceedings {67, title = {Optimal Instrumentation of Data-flow in Concurrent Data Structures}, booktitle = {Proc. of the 15th International Conference On Principles Of Distributed Systems (OPODIS)}, year = {2011}, month = {December}, pages = {497-512}, address = {Toulouse, France}, abstract = {

In this paper, we propose an automated technique for optimal instrumentation of multi-threaded programs for debugging and testing of concurrent data structures. We define a notion of observability that enables debuggers to trace back and locate errors through data-flow instrumentation. Observability in a concurrent program enables a debugger to extract the value of a set of desired variables through instrumenting another (possibly smaller) set of variables. We formulate an optimization problem that aims at minimizing the size of the latter set. In order to cope with the exponential complexity of the problem, we present a SAT-based solution. Our approach is fully implemented and experimental results on popular concurrent data structures (e.g., linked lists and red-black trees) show significant performance improvement in optimally-instrumented programs using our method as compared to ad-hoc over-instrumented programs.

}, keywords = {debugging, Instrumentation}, doi = {10.1007/978-3-642-25873-2_34}, url = {http://www.springerlink.com/content/dh336633w17613jp/}, author = {Samaneh Navabpour and Borzoo Bonakdarpour and Fischmeister, Sebastian} } @article {60, title = {Time-Aware Instrumentation of Embedded Software}, journal = {IEEE Transactions on Industrial Informatics}, volume = {6}, year = {2010}, month = {August}, pages = {652{\textendash}663}, abstract = {

Software instrumentation is a key technique in many stages of the development process. It is particularly important for debugging embedded systems. Instrumented programs produce data traces which enable the developer to locate the origins of misbehaviours in the system under test. However, producing data traces incurs runtime overhead in the form of additional computation resources for capturing and copying the data. The instrumentation may therefore interfere with the system\’s timing and perturb its behavior. In this work, we propose an instrumentation technique for applications with temporal constraints, specifically targetting background/foreground or cyclic executive systems. Our framework permits reasoning about space and time and enables the composition of software instrumentations. In particular, we propose a definition for trace reliability, which enables us to instrument real-time applications which aggressively push their time budgets. Using the framework, we present a method with low perturbation by optimizing the number of insertion points and trace buffer size with respect to code size and time budgets. Finally, we apply the theory to two concrete case studies: we instrument the OpenEC firmware for the keyboard controller of the One Laptop Per Child project, as well as an implementation of a flash filesystem.

}, keywords = {debugging, Instrumentation, real-time, tracing}, issn = {1551-3203}, doi = {10.1109/TII.2010.2068304}, url = {http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5559440}, author = {Fischmeister, Sebastian and Lam, Patrick} }