Abstract. Algorithmic debugging is a semi-automatic debugging technique that is present in practically all mature programming languages. In this paper we claim that the state of the practice in algorithmic debugging is a step forward compared with the state of the theory. In particular, we argue that novel techniques for algorithmic debugging cannot be supported by the standard internal data structures, such as the Execution Tree (ET), used in this technique, and hence a generalization of the standard definitions and algorithms is needed. We identify two specific problems of the standard formulation and implementations of algorithmic debugging, and we propose a reformulation to solve both problems. The reformulation has been done in a paradigm-independent manner to make it useful and reusable in different programming languages.