Title:
Assembly Instruction Level Reverse Execution for Debugging

dc.contributor.advisor Mooney, Vincent John, III
dc.contributor.author Akgul, Tankut en_US
dc.contributor.committeeMember LeBlanc, Richard J.
dc.contributor.committeeMember Madisetti, Vijay K.
dc.contributor.committeeMember Pande, Santosh
dc.contributor.committeeMember Sivakumar, Raghupathy
dc.contributor.department Electrical and Computer Engineering en_US
dc.date.accessioned 2005-03-03T22:11:15Z
dc.date.available 2005-03-03T22:11:15Z
dc.date.issued 2004-04-12 en_US
dc.description.abstract Reverse execution can be defined as a method which recovers the states that a program attains during its execution. Therefore, reverse execution eliminates the need for repetitive program restarts every time a bug location is missed. This potentially shortens debug time considerably. This thesis presents a new approach which, for the first time ever (to the best of the author's knowledge), achieves reverse execution at the assembly instruction level on general purpose processors via execution of a reverse program. A reverse program almost always regenerates destroyed states rather than restoring them from a record. Furthermore, a reverse program provides assembly instruction by assembly instruction execution in the backward direction. This significantly reduces state saving and thus decreases the associated memory and time costs of reverse execution support. Furthermore, this thesis presents a new dynamic slicing algorithm that is built on top of assembly instruction level reverse execution. Dynamic slicing is a technique which isolates the code parts that influence an erroneous variable at a program point. The algorithm presented in this thesis achieves dynamic slicing via execution of a reduced reverse program. A reduced reverse program is obtained from a full reverse program by omitting the instructions that recover states irrelevant to the dynamic slice under consideration. This provides a reverse execution capability along a designated dynamic slice only. The use of a reduced reverse program for dynamic slicing removes the need for runtime execution trajectories. The methodology of this thesis has been implemented on a PowerPC processor with a custom made debugger. As compared to previous work, all of which heavily use state saving techniques, the experimental results show up to 2206X reduction in runtime memory usage, up to 403X reduction in forward execution time overhead and up to 2.32X reduction in forward execution time for the tested benchmarks. Measurements on the selected benchmarks also indicate that the dynamic slicing method presented in this thesis can achieve up to six orders of magnitude (1,928,500X) speedups in reverse execution along the dynamic slice as compared to full-scale reverse execution. en_US
dc.description.degree Ph.D. en_US
dc.format.extent 1253462 bytes
dc.format.mimetype application/pdf
dc.identifier.uri http://hdl.handle.net/1853/5249
dc.language.iso en_US
dc.publisher Georgia Institute of Technology en_US
dc.subject Reverse execution en_US
dc.subject Debugging
dc.subject Dynamic slicing
dc.subject.lcsh Debugging in computer science en_US
dc.subject.lcsh Computer software Development en_US
dc.title Assembly Instruction Level Reverse Execution for Debugging en_US
dc.type Text
dc.type.genre Dissertation
dspace.entity.type Publication
local.contributor.advisor Mooney, Vincent John, III
local.contributor.corporatename School of Electrical and Computer Engineering
local.contributor.corporatename College of Engineering
relation.isAdvisorOfPublication 1068070d-f7e9-4b9c-9be6-72023d13e2a1
relation.isOrgUnitOfPublication 5b7adef2-447c-4270-b9fc-846bd76f80f2
relation.isOrgUnitOfPublication 7c022d60-21d5-497c-b552-95e489a06569
Files
Original bundle
Now showing 1 - 1 of 1
Thumbnail Image
Name:
akgul_tankut_200405_phd.pdf
Size:
1.2 MB
Format:
Adobe Portable Document Format
Description: