Results 1 -
2 of
2
Techniques for Debugging Parallel Programs with Flowback Analysis
, 1991
"... Flowback analysis is a powerful technique for debugging programs. It allows the programmer to examine dynamic dependences in a program's execution history without having to re-execute the program. The goal is to present to the programmer a graphical view of the dynamic program dependences. We are bu ..."
Abstract
-
Cited by 84 (8 self)
- Add to MetaCart
Flowback analysis is a powerful technique for debugging programs. It allows the programmer to examine dynamic dependences in a program's execution history without having to re-execute the program. The goal is to present to the programmer a graphical view of the dynamic program dependences. We are building a system, called PPD, that performs flowback analysis while keeping the execution time overhead low. We also extend the semantics of flowback analysis to parallel programs. This paper describes details of the graphs and algorithms needed to implement efficient flowback analysis for parallel programs. Execution time overhead is kept low by recording only a small amount of trace during a program's execution. We use semantic analysis and a technique called incremental tracing to keep the time and space overhead low. As part of the semantic analysis, PPD uses a static program dependence graph structure that reduces the amount of work done at compile time and takes advantage of the dynamic...
Code Generation and Separate Compilation in a Parallel Program Debugger
- in Research Monographs on Parallel and Distributed Computing
, 1990
"... The Parallel Program Debugger (PPD) allows a programmer to find bugs by following dynamic dependences in a program's execution; this technique is called flowback analysis. Flowback analysis requires the tracing of all variable references and modifications. PPD avoids the overhead of this tracing by ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
The Parallel Program Debugger (PPD) allows a programmer to find bugs by following dynamic dependences in a program's execution; this technique is called flowback analysis. Flowback analysis requires the tracing of all variable references and modifications. PPD avoids the overhead of this tracing by recording only a subset of the program's state during execution, and incrementally filling in the missing details when the programmer makes queries about execution dependences. There is a trade-off between overhead of the tracing during program execution and the speed of generating the missing details during user queries. Our compiler is divided into four phases. This separation of phases allows us to first compile separate files, and to generate code for these files. Second, we perform interprocedural analysis using the data structures generated by the first phase. Third, we modify the individual assembly files to account for optimizations to the tracing, and to generate tracing for shared ...

