• Login
    View Item 
    •   MINDS@UW Home
    • MINDS@UW Madison
    • College of Letters and Science, University of Wisconsin–Madison
    • Department of Computer Sciences, UW-Madison
    • CS Technical Reports
    • View Item
    •   MINDS@UW Home
    • MINDS@UW Madison
    • College of Letters and Science, University of Wisconsin–Madison
    • Department of Computer Sciences, UW-Madison
    • CS Technical Reports
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    Code Generation and Separate Compilation in a Parallel Program Debugger

    Thumbnail
    File(s)
    TR874.pdf (2.609Mb)
    Date
    1989
    Author
    Choi, Jong-Deok
    Miller, Barton P
    Publisher
    University of Wisconsin-Madison Department of Computer Sciences
    Metadata
    Show full item record
    Abstract
    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
    http://digital.library.wisc.edu/1793/59178
    Type
    Technical Report
    Citation
    TR874
    Part of
    • CS Technical Reports

    Contact Us | Send Feedback
     

     

    Browse

    All of MINDS@UWCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

    My Account

    Login

    Contact Us | Send Feedback