MINDS @ UW-Madison

Code Generation and Separate Compilation in a Parallel Program Debugger

Show full item record


Choi, Jong-Deok; Miller, Barton P
University of Wisconsin-Madison Department of Computer Sciences
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 variables. The last phase links together all the individual files. The compiling costs for our debugging system are several times higher than the standard system compiler. Initial results show that there is a large execution time cost savings by carefully selecting the data to be traced during program execution. The savings includes both the size of the trace file and execution time overhead. The most sensitive areas seem to involve small procedures, long-running loops, or arrays.
Permanent link
Export to RefWorks 

Part of

Show full item record

Search and browse


Deposit materials

  1. Register to deposit in MINDS@UW
  2. Need deposit privileges? Contact us.
  3. Already registered? Have deposit privileges? Deposit materials.