ABSTRACT
Debugging is an important phase in the embedded software development cycle because of its high proportion in the overall cost in the product development. Debugging is difficult for real-time applications as such programs are time-sensitive and must meet deadlines in often a resource constrained environment.
A common approach for real-time systems is to monitor the execution instead of stepping through the program, because stepping will usually violate all deadline constraints. We consider a sampling-based approach for monitoring, because of its predictable overhead for the system compared to traditional monitoring. However, the sampling-based approach can easily have high overhead depending on the length of branches and the granularity of the monitoring effort. To reduce this overhead, we instrument the program with markers that will permit us to sample less frequently and thus reduce the overhead.
This leads to the interesting problems of (a) where to place the markers in the code and (b) how to manipulate the markers. While related work investigates the first part, in this work, we investigate the second component of the problem. We investigate different instrumentation schemes and propose two new schemes based on bitvectors that significantly reduce the overhead for sampling-based execution monitoring.
- RapiTime. web page. http://www.rapitasystems.com/rapitime.Google Scholar
- J.M. Anderson, L.M. Berc, J. Dean, S. Ghemawat, M.R. Henzinger, S.-T.A. Leung, R.L. Sites, M.T. Vandevoorde, C.A. Waldspurger, and W.E. Weihl. Continuous profiling: Where have all the cycles gone? ACM Trans. Comput. Syst., 15(4):357--390, 1997. Google ScholarDigital Library
- M. Arnold and B.G. Ryder. A framework for reducing the cost of instrumented code. In Proc. of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI), pages 168--179, 2001. Google ScholarDigital Library
- M. Arnold and P.F. Sweeney. Approximating the calling context tree via sampling. Technical Report RC 21789, IBM T.J. Watson Research Center, July 200.Google Scholar
- A. Ayers, R. Schooler, C. Metcalf, A. Agarwal, J. Rhee, and E. Witchel. Traceback: First fault diagnosis by reconstruction of distributed control flow. ACM SIGPLAN Not., 40(6):201--212, 2005. Google ScholarDigital Library
- V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A Transparent Dynamic Optimization System. In Proc. of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI), pages 1--12, 2000. Google ScholarDigital Library
- T. Ball and J.R. Larus. Optimally profiling and tracing programs. ACM Trans. Program. Lang. Syst., 16(4):1319--1360, 1994. Google ScholarDigital Library
- T. Ball and J.R. Larus. Efficient path profiling. In Proc. of the 29th Annual ACM/IEEE International Symposium on Microarchitecture, pages 46--57, 1996. Google ScholarDigital Library
- D. Bruening, T. Garnett, and S. Amarasinghe. An Infrastructure for Adaptive Dynamic Optimization. In Proc. of the International Symposium on Code Generation and Optimization (CGO), pages 265--275, 2003. Google ScholarDigital Library
- M. Burrows, U. Erlingsson, S.-T. A. Leung, M. T. Vandevoorde, C. A. Waldspurger, K. Walker, and W. E. Weihl. Efficient and flexible value sampling. ACM SIGPLAN Not., 35(11):160--167, 2000. Google ScholarDigital Library
- J.-D. Choi, B.P. Miller, and R.H.B. Netzer. Techniques for debugging parallel programs with flowback analysis. ACM Trans. Program. Lang. Syst., 13(4):491--530, 1991. Google ScholarDigital Library
- I. Chun and C. Lim. Es-debugger: the flexible embedded system debugger based on jtag technology. Proc. of the 7th International Conference on Advanced Communication Technology (ICACT), 2:900--903, 0-0 2005.Google Scholar
- J. Dean, J.E. Hicks, C.A. Waldspurger, W.E. Weihl, and G. Chrysos. Profileme: Hardware support for instruction-level profiling on out-of-order processors. In Proc. of the 30th Annual ACM/IEEE International Symposium on Microarchitecture (MICRO), 1997. Google ScholarDigital Library
- R.P. Dick, D.L. Rhodes, and W. Wolf. Tgff: Task graphs for free. In Proc. of the Sixth International Workshop on Hardware/Software Codesign (CODES/CASHE), pages 97--101, Mar 1998. Google ScholarDigital Library
- S. Fischmeister and Y. Ba. Sampling-based Program Execution Monitoring. In Proc. of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), pages 133--142, 2010. Google ScholarDigital Library
- S. Fischmeister and P. Lam. Time-aware Instrumentation of Embedded Software. IEEE Transactions on Industrial Informatics, 2010.Google ScholarCross Ref
- I.R. Forman. On the time overhead of counters and traversal markers. In Proc. of the 5th International Conference on Software Engineering (ICSE), pages 164--169, 1981. Google ScholarDigital Library
- M.P. Gallaher and B.M. Kropp. The Economic Impacts of Inadequate Infrastructure for Software Testing. National Institute of Standards & Technologg Planning Report 02--03, May 2002.Google Scholar
- S.L. Graham, P.B. Kessler, and M.K. Mckusick. Gprof: A call graph execution profiler. ACM SIGPLAN Not., 17(6):120--126, 1982. Google ScholarDigital Library
- N. Kumar, B.R. Childers, and M.L. Soffa. Low overhead program monitoring and profiling. In Proc. of the 6th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE), pages 28--34, 2005. Google ScholarDigital Library
- J. R. Larus. Abstract execution: a technique for efficiently tracing programs. Softw. Pract. Exper., 20(12):1241--1258, 1990. Google ScholarDigital Library
- J.R. Larus and E. Schnarr. EEL: Machine-Independent Executable Editing. In Proc. of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation (PLDI), pages 291--300, 1995. Google ScholarDigital Library
- Ashling Microsystems Ltd. IEEE-ISTO 5001TM-1999, The Nexus 5001 Forum Standard. Nexus 5001 Forum, 2000.Google Scholar
- C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V.J. Reddi, and K. Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In Proc. of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 190--200, 2005. Google ScholarDigital Library
- J. Misurda, J.A. Clause, J.L. Reed, B.R. Childers, and M.L. Soffa. Demand-driven structural testing with dynamic instrumentation. In ICSE '05: Proc. of the 27th International Conference on Software Engineering, pages 156--165, 2005. Google ScholarDigital Library
- R.H.B. Netzer and M.H. Weaver. Optimal tracing and incremental reexecution for debugging long-running programs. In PLDI '94: Proc. of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pages 313--325, New York, NY, USA, 1994. ACM. Google ScholarDigital Library
- W. Orme. Debug and Trace for Multicore SoCs. ARM, September 2008.Google Scholar
- A. Srivastava and A. Eustace. ATOM: A System for Building Customized Program Analysis Tools. ACM SIGPLAN Not., 39:528--539, 2004. Google ScholarDigital Library
- M. Thorup. All structured programs have small tree width and good register allocation. Inf. Comput., 142(2):159--181, 1998. Google ScholarDigital Library
- B.L. Titzer and J. Palsberg. Nonintrusive precision instrumentation of microcontroller software. In LCTES '05: Proc. of the 2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, pages 59--68, 2005. Google ScholarDigital Library
- J. Whaley. A portable sampling-based profiler for java virtual machines. In Proc. of the ACM 2000 Conference on Java Grande, pages 78--87, 2000. Google ScholarDigital Library
- Y. Zhong and W. Chang. Sampling-based program locality approximation. In Proc. of the 7th International Symposium on Memory Management (ISMM), pages 91--100, 2008. Google ScholarDigital Library
Index Terms
- Lowering overhead in sampling-based execution monitoring and tracing
Recommendations
Lowering overhead in sampling-based execution monitoring and tracing
LCTES '10Debugging is an important phase in the embedded software development cycle because of its high proportion in the overall cost in the product development. Debugging is difficult for real-time applications as such programs are time-sensitive and must meet ...
Sampling-based program execution monitoring
LCTES '10For its high overall cost during product development, program debugging is an important aspect of system development. Debugging is a hard and complex activity, especially in time-sensitive systems which have limited resources and demanding timing ...
Sampling-based program execution monitoring
LCTES '10: Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systemsFor its high overall cost during product development, program debugging is an important aspect of system development. Debugging is a hard and complex activity, especially in time-sensitive systems which have limited resources and demanding timing ...
Comments