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 条
  • [31] BugNet: Recording application-level execution for deterministic replay debugging
    Narayanasamy, S
    Pokam, G
    Calder, B
    IEEE MICRO, 2006, 26 (01) : 100 - 109
  • [32] Space efficient execution of deterministic parallel programs
    Simpson, DJ
    Burton, FW
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (06) : 870 - 882
  • [33] A class library for implementing, testing, and debugging concurrent programs
    Carver R.H.
    Lei Y.
    International Journal on Software Tools for Technology Transfer, 2010, 12 (01) : 69 - 88
  • [34] Searching for deadlocks while debugging concurrent haskell programs
    Christiansen, J
    Huch, F
    ACM SIGPLAN NOTICES, 2004, 39 (09) : 28 - 39
  • [35] Special issue on testing, analysis and debugging of concurrent programs
    Farchi, Eitan
    Hierons, Robert M.
    Lourenco, Joao
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2015, 25 (03): : 165 - 166
  • [36] HIGH-LEVEL LANGUAGE DEBUGGING FOR CONCURRENT PROGRAMS
    GOLDSZMIDT, GS
    YEMINI, S
    KATZ, S
    ACM TRANSACTIONS ON COMPUTER SYSTEMS, 1990, 8 (04): : 311 - 336
  • [37] The ThreadRadar visualization for debugging concurrent Java']Java programs
    Moseler, Oliver
    Kreber, Lucas
    Diehl, Stephan
    JOURNAL OF VISUALIZATION, 2022, 25 (06) : 1267 - 1289
  • [38] Backtracking and re-execution in the automatic debugging of parallelized programs
    Matthews, G
    Hood, R
    Johnson, S
    Leggett, P
    11TH IEEE INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE DISTRIBUTED COMPUTING, PROCEEDINGS, 2002, : 150 - 160
  • [39] STRUCTURED PARTITIONING OF CONCURRENT PROGRAMS FOR EXECUTION ON MULTIPROCESSORS
    WANG, CM
    WANG, SD
    PARALLEL COMPUTING, 1990, 16 (01) : 41 - 57
  • [40] Compiling concurrent programs for embedded sequential execution
    Lin, Bill
    INTEGRATION-THE VLSI JOURNAL, 2007, 40 (02) : 106 - 117