INCREMENTAL TRACING AND PROCESS ISOLATION FOR DEBUGGING PARALLEL PROGRAMS
AbstractTesting and debugging parallel programs is often difficult and tedious since concurrently executing tasks may generate a multiplicity of bugs well-known from sequential programs. Additional malign effects established by communication and synchronization, like race conditions and deadlocks, further limit or even prohibit the use of purely sequential debuggers. Consequently, many different approaches for parallel program debugging have been developed, that exploit several instances of sequential debuggers enhanced by specialized techniques to overcome various parallel debugging obstacles. Such an approach is process isolation, which tries to enable debugging of selected processes with sequential debuggers while preserving the behavior of all the other processes in the system. The corresponding debugging strategy is based on a three phases record&replay mechanism, which performs incremental tracing to obtain the required debugging data. During the first phase, only the ordering of occurring events is traced to support correct re-execution of nondeterministic parallel programs. During the second phase, the amount of tracing is increased to obtain all data necessary to generate an event graph display, that describes the relations between events on concurrent processes. Based on this display of a program's behavior, the user selects the target for process isolation. The required data for sequential re-execution of this target process is then obtained during the third re-execution of a program. Afterwards, the user can execute the isolated process over and over again with a sequential debugger, without the need of executing any other processes than the isolated one.
Download data is not yet available.
How to Cite
Kranzlmüller, D. (2012). INCREMENTAL TRACING AND PROCESS ISOLATION FOR DEBUGGING PARALLEL PROGRAMS. COMPUTING AND INFORMATICS, 19(6), 569–585. Retrieved from https://www.cai.sk/ojs/index.php/cai/article/view/578