ACM Home Page
Please provide us with feedback. Feedback
Searching for deadlocks while debugging concurrent haskell programs
Full text PdfPdf (126 KB)
Source International Conference on Functional Programming archive
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming table of contents
Snow Bird, UT, USA
SESSION: Session I table of contents
Pages: 28 - 39  
Year of Publication: 2004
ISBN:1-58113-905-5
Also published in ...
Authors
Jan Christiansen  Christian-Albrechts-University of Kiel, Kiel, Germany
Frank Huch  Christian-Albrechts-University of Kiel, Kiel, Germany
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 46,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1016850.1016858
What is a DOI?

ABSTRACT

This paper presents an approach to searching for deadlocks in Concurrent Haskell programs. The search is based on a redefinition of the IO monad which allows the reversal of Concurrent Haskells concurrency primitives. Hence, it is possible to implement this search by a backtracking algorithm checking all possible schedules of the system. It is integrated in the Concurrent Haskell Debugger (CHD), and automatically searches for deadlocks in the background while debugging. The tool is easy to use and the small modifications of the source program are done by a preprocessor. In the tool we use iterative deepening as search strategy which quickly detects deadlocks close to the actual system configuration and utilizes idle time during debugging at the best.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
T. Böttcher and F. Huch. A Debugger for Concurrent Haskell. In Proceedings of the 14th International Workshop on the Implementation of Functional Languages, Madrid, Spain, September 2002.
 
3
 
4
 
5
Edmund M. Clarke, Orna Grumberg, Marius Minea, and Doron Peled. State space reduction using partial order techniques. Software Tools for Technology Transfer, 2, 1998.
6
 
7
The Glasgow Haskell compiler. http://www.haskell.org/ghc/.
 
8
Andy Gill. Debugging Haskell by observing intermediate data structures. In Proceedings of the 2000 ACM SIGPLAN Haskell Workshop, volume 41-1 of ENTCS. Elsevier, September 2000.
 
9
K. Havelund and G. Rosu. Java PathExplorer - A runtime verification tool. In In Proceedings 6th International Symposium on Artificial Intelligence, Robotics and Automation in Space, ISAIRAS'01, Montreal, Canada, June 18-22, 2001., 2001.
 
10
Klaus Havelund and Thomas Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4), April 1998.
11
 
12
 
13
F. Huch and V. Stolz. Runtime verification of Concurrent Haskell programs. In Proceedings of the Fourth Workshop on Runtime Verification, to appear in ENTCS. Elsevier Science Publishers, 2004.
 
14
The Haskell interpreter Hugs. http://www.haskell.org/hugs/.
 
15
 
16
K. Läufer. Type classes with existential types. J. of Functional Programming, 6(3):485--517, May 1996.
 
17
 
18
Simon Peyton Jones et al. Haskell 98 report. Technical report, http://www.haskell.org, 1998.
19
 
20
Grigore Rosu and Koushik Sen. An instrumentation technique for online analysis of multithreaded programs. In to appear as invited Paper at Parallel and Distributed Systems: Testing and Debugging (PADTAD-2), 2004.
 
21


Collaborative Colleagues:
Jan Christiansen: colleagues
Frank Huch: colleagues