Abstract
Tracing a computation is a key method for program comprehension and debugging. Hat is a tracing system for Haskell 98 programs. During a computation a trace is recorded in a file; then the user studies the trace with a collection of viewing tools. Different views are complementary and can productively be used together. Experience shows that users of the viewing tools find it hard to keep orientation and navigate to a point of interest in the trace. Hence this paper describes a new viewing tool where navigation through the trace is based on the program source. The tool combines ideas from algorithmic debugging, traditional stepping debuggers and dynamic program slicing.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Braßel, B., Hanus, M., Huch, F., Vidal, G.: A semantics for tracing declarative multi-paradigm programs. In: Proceedings of the 6th ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 179–190. ACM Press, New York (2004)
Chitil, O., Runciman, C., Wallace, M.: Freja, Hat and Hood — A comparative evaluation of three systems for tracing and debugging lazy functional programs. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 176–193. Springer, Heidelberg (2001)
Chitil, O., Runciman, C., Wallace, M.: Transforming Haskell for tracing. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, pp. 165–181. Springer, Heidelberg (2003)
Claessen, K., Runciman, C., Chitil, O., Hughes, J., Wallace, M.: Testing and tracing lazy functional programs using QuickCheck and Hat. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 59–99. Springer, Heidelberg (2003)
Nilsson, H.: Declarative Debugging for Lazy Functional Languages. PhD thesis, Linköping, Sweden (May 1998)
Nilsson, H., Sparud, J.: The evaluation dependence tree as a basis for lazy functional debugging. Automated Software Engineering: An International Journal 4(2), 121–150 (1997)
Ochoa, C., Silva, J., Vidal, G.: Dynamic Slicing Based on Redex Trails. In: Proc. of the ACM SIGPLAN 2004 Symposium on Partial Evaluation and Program Manipulation (PEPM 2004), pp. 123–134. ACM Press, New York (2004)
Pope, B., Naish, L.: Practical aspects of declarative debugging in Haskell 1998. In: Fifth ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, pp. 230–240 (2003)
Shapiro, E.Y.: Algorithmic Program Debugging. MIT Press, Cambridge (1983)
Sparud, J., Runciman, C.: Complete and partial redex trails of functional computations. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 160–177. Springer, Heidelberg (1998)
Sparud, J., Runciman, C.: Tracing lazy functional computations using redex trails. In: Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 291–308. Springer, Heidelberg (1997)
Tip, F.: A survey of program slicing techniques. Journal of programming languages 3, 121–189 (1995)
Wallace, M., Chitil, O., Brehm, T., Runciman, C.: Multiple-view tracing for Haskell: a new Hat. In: Preliminary Proceedings of the 2001 ACM SIGPLAN Haskell Workshop, UU-CS-2001-23. Universiteit Utrecht (2001); Final proceedings to appear in ENTCS 59(2)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chitil, O. (2005). Source-Based Trace Exploration. In: Grelck, C., Huch, F., Michaelson, G.J., Trinder, P. (eds) Implementation and Application of Functional Languages. IFL 2004. Lecture Notes in Computer Science, vol 3474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11431664_8
Download citation
DOI: https://doi.org/10.1007/11431664_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-26094-3
Online ISBN: 978-3-540-32038-8
eBook Packages: Computer ScienceComputer Science (R0)