Two dimensional concurrent program debugging

Lu Xu, Purdue University

Abstract

Debugging, which entails locating program faults responsible for a program failure, is more difficult in concurrent programs than in sequential programs, because of the inherent difficulty of understanding task interactions. In addition to sequential debugging facilities for individual threads of control, specialized facilities are needed to debug interactions among tasks. Integration of the two kinds of debugging facilities is motivated by the observation that a program fault can be manifested as a sequence of erroneous program states and erroneous coordinations among tasks alternately before causing an observable failure. Localization of a fault may require facilities to trace the causes of a failure through both sequential computation and interactions. In this dissertation we propose a two dimensional approach to debugging of concurrent programs. Different and specialized facilities are provided for sequential debugging and concurrent debugging, respectively. These two "dimensions" are integrated in a way that supports tracing the effect of a program fault both within and across tasks. We present a design of concurrent debugging facilities based on the model. As the key component of the design, we introduce and define a customized dynamic dependence analysis called augmented concurrent dynamic slicing. As many concurrent programs are nondeterministic, program instrumentation may perturb a program to the extent that it fails to reproduce the error-revealing behavior. Our analysis requires less execution information than required by prior analyses, and provides flexible control of the tradeoff between precise analysis and behavior perturbation. Thus, our analysis is applicable to time-sensitive programs.

Degree

Ph.D.

Advisors

Young, Purdue University.

Subject Area

Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS