TIDE: A Generic Debugging Framework — Tool Demonstration —
30
Citation
7
Reference
10
Related Paper
Citation Trend
Abstract:
A language specific interactive debugger is one of the tools that we expect in any mature programming environment. We present applications of TIDE: a generic debugging framework that is related to the ASF+SDF Meta-Environment. TIDE can be applied to different levels of debugging that occur in language design. Firstly, TIDE was used to obtain a full-fledged debugger for language specifications based on term rewriting. Secondly, TIDE can be instantiated for any other programming language, including but not limited to domain specific languages that are defined and implemented using ASF+SDF. We demonstrate the common debugging interface, and indicate the amount of effort needed to instantiate new debuggers based on TIDE.Keywords:
Debugger
Interface (matter)
Algorithmic program debugging
Algorithmic debugging is a debugging technique that has been extended to practically all programming paradigms. It is based on the answers of the programmer to a series of questions generated automatically by the algorithmic debugger. Therefore, the performance of the technique is strongly dependent on the number and the complexity of these questions. In this work we overview and compare current strategies for algorithmic debugging and we introduce some new strategies and discuss their advantages over previous approaches.
Debugger
Algorithmic program debugging
Programmer
Cite
Citations (49)
This paper reviews the relevant literature on computer program debugging by students. Debugging is a part of programming learning, the complete programming process will be the end of the program debugging, but this step for the novice programmer has a certain difficulty. Although there are many programming AIDS to help beginners quickly start programming, it is difficult to avoid mistakes in the programming process. Experts have a wealth of programming experience and spend a certain amount of time on debugging. For novice debuggers with a more unfamiliar programming environment, debugging will take more time. This paper reviews and summarizes the debugging research literature in the past, focusing on the following four aspects: What is a novice debugger? Common types of novice errors and student performance in debugging. Finally, we hope to promote the future development of computer education through the analysis of these debugging studies.
Debugger
Algorithmic program debugging
Programmer
Computer programming
Cite
Citations (1)
Debugging embedded systems is difficult due to the restricted resources available, and the the difficulty of reproducing bugs. Moreover, few debugging facilities are available for constrained devices. To address these problems, we build upon a recent technique for debugging big data applications, called out-of-place debugging.
Debugger
Algorithmic program debugging
Software bug
Cite
Citations (0)
Parallel debugger is crucial for improving the efficiency of parallel programming development. Parallel debugging interface is the basis of parallel debugging. This paper puts forward a parallel debugger design method of a new interactive, Internet-oriented, extensible parallel debugger framework based on the research of a number of parallel debugging interfaces' design methods and advantages and disadvantages analysis, and gives a careful implementation of a new parallel debugging interface in this new parallel debugger framework. In this framework users can execute debugging job remotely. The debugging back-end servers are deployed in clusters with various remote debugging details transparent to users. Tests showed that the parallel debugging interface designed in this paper not only properly meets the needs of user's debugging requirement, but also have a good time performance. Under the test circumstances, it took about 11 seconds to startup 256 remote parallel debugging processes on 3 computing nodes.
Debugger
Algorithmic program debugging
Interface (matter)
Cite
Citations (0)
Developing software is complex, debugging even more. In this thesis an approach is presented to reduce the debugger’s burden by introducing visual support for debugging. This is accomplished by using multiple supporting debugging concepts which are implemented in the tool: the Visual Debugger. The Visual Debugger supports debugging by visualizing the local neighborhood at runtime when debugging with a specialized hierarchical graph. The visualization provides the user easy access to an overview and details of the dependencies surrounding the executing method. The concept of visualizing local neighborhood to support debugging is tested in a pre-post test user experiment in which participants solve debug tasks with the Visual Debugger and answer questions about their debug habits. The questions involve how participants experience the tool and how they use a debugger. The results show that the capability of the Visual Debugger to support debugging by visualizing the local neighborhood is useful but more optimization and research is required to relate this result to improved program understanding.
Debugger
Algorithmic program debugging
Cite
Citations (0)
Context Recent studies show that developers spend most of their programming time testing, verifying and debugging software.As applications become more and more complex, developers demand more advanced debugging support to ease the software development process.Inquiry Since the 70's many debugging solutions have been introduced.Amongst them, online debuggers provide good insight on the conditions that led to a bug, allowing inspection and interaction with the variables of the program.However, most of the online debugging solutions introduce debugging interference to the execution of the program, i.e. pauses, latency, and evaluation of code containing side-effects.Approach This paper investigates a novel debugging technique called out-of-place debugging.The goal is to minimize the debugging interference characteristic of online debugging while allowing online remote capabilities.An out-of-place debugger transfers the program execution and application state from the debugged application to the debugger application, each running in a different process.Knowledge On the one hand, out-of-place debugging allows developers to debug applications remotely, overcoming the need of physical access to the machine where the debugged application is running.On the other hand, debugging happens locally on the remote machine avoiding latency.That makes it suitable to be deployed on a distributed system and handle the debugging of several processes running in parallel.Grounding We implemented a concrete out-of-place debugger for the Pharo Smalltalk programming language.We show that our approach is practical by running several benchmarks, comparing our approach with a classic remote online debugger.We show that our prototype debugger outperforms a traditional remote debugger by 1000 times in several scenarios.Moreover, we show that the presence of our debugger does not impact the overall performance of an application.Importance This work combines remote debugging with the debugging experience of a local online debugger.Out-of-place debugging is the first online debugging technique that can minimize debugging interference while debugging a remote application.Yet, it still keeps the benefits of online debugging (e.g., step-by-step execution).This makes the technique suitable for modern applications which are increasingly parallel, distributed and reactive to streams of data from various sources like sensors, UI, network, etc.
Debugger
Algorithmic program debugging
Cite
Citations (5)
Programmers spend considerable time debugging their systems. They add logging statements and use debuggers to run their systems in a controlled environment all in an attempt to understand what is happening as their program executes. Our hypothesis is that visualization tools can significantly improve the debugging process. A wide variety of tools have been developed for visualizing and understanding the dynamics of program execution. These tools can provide lots of information about executions. However, most tools are not designed to be used with a debugger. What is needed are tools that can work while the programmer is debugging a system and that provide the information the programmer needs to understand and assist the debugging process. We have started to develop such tools within the context of the Code Bubbles development environment. However, there is much room for improvement and we call upon the software visualization community to think about and develop practical tools that will improve the debugging process.
Debugger
Algorithmic program debugging
Programmer
Cite
Citations (13)
While professional integrated programming environments support developers with advanced debugging functionality, block-based programming environments for young learners often provide no support for debugging at all, thus inhibiting debugging and preventing debugging education. In this paper we introduce NuzzleBug, an extension of the popular block-based programming environment Scratch that provides the missing debugging support. NuzzleBug allows controlling the executions of Scratch programs with classical debugging functionality such as stepping and breakpoints, and it is an omniscient debugger that also allows reverse stepping. To support learners in deriving hypotheses that guide debugging, NuzzleBug is an interrogative debugger that enables to ask questions about executions and provides answers explaining the behavior in question. In order to evaluate NuzzleBug, we survey the opinions of teachers, and study the effects on learners in terms of debugging effectiveness and efficiency. We find that teachers consider NuzzleBug to be useful, and children can use it to debug faulty programs effectively. However, systematic debugging requires dedicated training, and even when NuzzleBug can provide correct answers learners may require further help to comprehend faults and necessary fixes, thus calling for further research on improving debugging techniques and the information they provide.
Debugger
Algorithmic program debugging
Scratch
Cite
Citations (5)
Debugger
Algorithmic program debugging
TRACE (psycholinguistics)
Eclipse
Plug-in
Cite
Citations (10)
Debugger
Algorithmic program debugging
TRACE (psycholinguistics)
Plug-in
Cite
Citations (0)