Using paths to measure, explain, and enhance program behavior
- 1 July 2000
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Computer
- Vol. 33 (7) , 57-65
- https://doi.org/10.1109/2.869371
Abstract
What happens when a computer program runs? The answer can be frustratingly elusive, as anyone who has debugged or tuned a program knows. As it runs, a program overwrites its previous state, which might have provided a clue as to how the program got to the point at which it computed the wrong answer or otherwise failed. This all-too-common experience is symptomatic of a more general problem: the difficulty of accurately and efficiently capturing and analyzing the sequence of events that occur when a program executes. Program paths offer an insight into a program's dynamic behavior that is difficult to achieve any other way. Unlike simpler measures such as program profiles, which aggregate information to reduce the cost of collecting or storing data, paths capture some of the usually invisible dynamic sequencing of statements. The article exploits the insight that program statements do not execute in isolation, but are typically correlated with the behavior of previously executed code.Keywords
This publication has 16 references indexed in Scilit:
- Trace cache: a low latency approach to high bandwidth instruction fetchingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Path profile guided partial dead code elimination using predicationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- A study of branch prediction strategiesPublished by Association for Computing Machinery (ACM) ,1998
- Improving data-flow analysis with path profilesPublished by Association for Computing Machinery (ACM) ,1998
- The use of program profiling for software maintenance with applications to the year 2000 problemACM SIGSOFT Software Engineering Notes, 1997
- Exploiting hardware performance counters with flow and context sensitive profilingPublished by Association for Computing Machinery (ACM) ,1997
- A comparative analysis of schemes for correlated branch predictionPublished by Association for Computing Machinery (ACM) ,1995
- A formal evaluation of data flow path selection criteriaIEEE Transactions on Software Engineering, 1989
- NPATH: a measure of execution path complexity and its applicationsCommunications of the ACM, 1988
- Generalized path expressions: A high-level debugging mechanismJournal of Systems and Software, 1983