DEBUGGING CONCURRENT ADA PROGRAMS BY DETERMINISTIC EXECUTION

被引:61
|
作者
TAI, KC
CARVER, RH
OBAID, EE
机构
[1] NATL SCI FDN, SOFTWARE ENGN PROGRAM, WASHINGTON, DC 20550 USA
[2] GEORGE MASON UNIV, DEPT COMP SCI, FAIRFAX, VA 22030 USA
[3] SAN JOSE STATE UNIV, DEPT MATH & COMP SCI, SAN JOSE, CA 95192 USA
关键词
ADA LANGUAGE; CONCURRENT PROGRAMS; DETERMINISTIC EXECUTION; SOFTWARE DEBUGGING;
D O I
10.1109/32.67578
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
An execution of a concurrent program P with input X nondeterministically exercises a sequence of synchronization events, called a synchronization sequence (or SYN-sequence). Thus, multiple executions of P with the same input X may exercise different SYN-sequences and produce different results. When debugging an erroneous execution of P with input X, it is often necessary to repeat this execution in order to collect more debugging information. However, there is no guarantee that this execution will be repeated by executing P with input X. To solve this problem requires deterministic execution debugging, which is to force a deterministic execution of a concurrent program according to the SYN-sequence of a previous execution of this program. In this paper, we present a language-based approach to deterministic execution debugging of concurrent Ada programs. Our approach is to define SYN-sequences of a concurrent Ada program in terms of Ada language constructs and to replay such SYN-sequences without the need of system-dependent debugging tools. We first show how to define a SYN-sequence of a concurrent Ada program in order to provide sufficient information for deterministic execution. Then we show how to transform a concurrent Ada program P so that the SYN-sequences of previous executions of P can be replayed. This transformation adds an Ada task to P that controls program execution by synchronizing with the original tasks in P. We also briefly describe the implementation of tools supporting deterministic execution debugging of concurrent Ada programs.
引用
收藏
页码:45 / 63
页数:19
相关论文
共 50 条
  • [41] Quasar: A new tool for concurrent Ada programs analysis
    Evangelista, S
    Kaiser, C
    Pradat-Peyre, JF
    Rousseau, P
    RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2003, 2003, 2655 : 168 - 181
  • [43] Static dependency analysis for concurrent Ada 95 programs
    Chen, ZQ
    Xu, BW
    Zhao, JJ
    Yang, HJ
    RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2002, 2002, 2361 : 219 - 230
  • [44] ρ Graph: Rendezvous ordering graph for Ada concurrent programs
    Zhenyu Wang
    Journal of Computer Science and Technology, 1998, 13 (6) : 615 - 622
  • [45] Execution replay and debugging of distributed multi-threaded parallel programs
    de Kergommeaux, JC
    Ronsse, M
    De Bosschere, K
    COMPUTERS AND ARTIFICIAL INTELLIGENCE, 2000, 19 (06): : 511 - 526
  • [46] Reversible debugging of concurrent Erlang programs: Supporting imperative primitives
    Lami, Pietro
    Lanese, Ivan
    Stefani, Jean -Bernard
    Coen, Claudio Sacerdoti
    Fabbretti, Giovanni
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2024, 138
  • [47] Interactive Debugging of Concurrent Programs under Relaxed Memory Models
    Verma, Aakanksha
    Kalita, Pankaj Kumar
    Pandey, Awanish
    Roy, Subhajit
    CGO'20: PROCEEDINGS OF THE18TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2020, : 68 - 80
  • [48] An Efficient Static Trace Simplification Technique for Debugging Concurrent Programs
    Huang, Jeff
    Zhang, Charles
    STATIC ANALYSIS, 2011, 6887 : 163 - 179
  • [49] Execution Privatization for Scheduler-Oblivious Concurrent Programs
    Huang, Jeff
    Zhang, Charles
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 737 - 752
  • [50] Concurrent execution of multiple NAS parallel programs on a cluster
    Wong, AKL
    Goscinski, AM
    COMPUTATIONAL SCIENCE - ICCS 2005, PT 1, PROCEEDINGS, 2005, 3514 : 435 - 442