Finding the needle: Stack Traces for GHC
File(s)finding-the-needle.pdf (273.69 KB)
Accepted version
Author(s)
Allwood, T
Peyton Jones, S
Eisenbach, S
Type
Conference Paper
Abstract
Even Haskell programs can occasionally go wrong. Programs calling head on an empty list, and incomplete patterns in function definitions can cause program crashes, reporting little more than the precise location where error was ultimately called. Being told that one application of the head function in your program went wrong, without knowing which use of head went wrong can be infuriating.\r\n\r\nWe present our work on adding the ability to get stack traces out of GHC, for example that our crashing head was used during the evaluation of foo, which was called during the evaluation of bar, during the evaluation of main. We provide a transformation that converts GHC Core programs into ones that pass a stack around, and a stack library that ensures bounded heap usage despite the highly recursive nature of Haskell. We call our extension to GHC StackTrace.
Date Issued
2009-09
Citation
2nd ACM SIGPLAN symposium on Haskell, 2009, pp.129-140
ISBN
978-1-60558-508-6
Source Title
Haskell'09
Conference
2nd ACM SIGPLAN symposium on Haskell
Start Page
129
End Page
140
Journal / Book Title
2nd ACM SIGPLAN symposium on Haskell
Copyright Statement
"© ACM, 2009. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in HASKELL, (2009) http://doi.acm.org/10.1145/1596638.1596654
Source
Haskell'09
Source Place
Edinburgh, Scotland
Start Date
2009-09-03
Finish Date
2009-09-03
Coverage Spatial
Edinburgh, Scotland