Functional programming languages have many advantages over the conventional procedural languages. But practical debugging environments for functional programmers are relatively poor.
To build useful debugging environments, some attempts have developed algorithmic debugging methods with top-down strategy, and redex trail debugging methods with bottom-up strategy. However, both approaches have a critical problem that the debugging information is too large to be used in practical applications.
In this thesis, we propose a selected redex trail debugging method. With this approach, debugger-users can set focuses at some doubtful positions of a program, and only selected parts of expression produce full traces. This method reduces debugging information and shortens debugging steps for traces. Our debugging system consists of the abstract machine which produces selective trail information, and the redex trail browser which helps a debugger-user to trace trails.