
Introduction - Background The Problem Our Approach Results - Future Work High-Level Debuggers: facilities and interfaces Design and Development of a debug-oriented I.D.E. by Nikos Papoylias Committee: Assistant Professor Michail G. Lagoudakis (Supervisor) Assistant Professor Katerina Mania Assistant Professor Vasilis Samoladas Departement of Electronic and Computer Engineering Technical University of Crete, 2009 Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Our Approach Results - Future Work What is this all about ? From the broad spectrum of computer science we concern ourselves with the fields of: Programming Languages and Tools Human-Computer Interaction More specifically we deal with: Debugging Systems Integrated Development Environments (I.D.Es) By proposing both theoritically and technologically ways to improve these systems. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Our Approach Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work The Development cycle and debugging Debuggers are the cardiographs of software While the term ’debugger’ is attributed to Grace Hopper creator of Cobol. debugging as a process is in fact a general characteristic of all human labor. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es The succession of programming processes, like coding and debugging, determine the ’project’s workflow’ Debugging and testing cover roughly 50% of this workflow in time An I.D.E. automates and organizes the different parts of the workflow Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es Emacs was one of the first such integration environment system: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es that set an example for modern I.D.Es (Anjuta) Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging inner-workings System layers and facilities of debugging: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging information flow A typical debugging information flow: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Symbolic debugging facilities A symbolic debugger – like gdb: Allows you to monitor what is going on ’inside’ your program Start your program, specifing anyting that might affect it’s behaviour Make your program stop on specified conditions Examine what has happened when your program stopped or crashed Change things in your program and continue execution Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Symbolic debugging facilities Line by line navigation step in, step out, step over. Stack Examination backtrace, up, down. Breakpoints, Watchpoints, Catchpoints break main.c:37, watch <expr>. Data evaluation/editing print <expr>. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Front-Ends and I.D.Es Most I.D.Es today, supply a simple front-end to a symbolic debugger: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging Systems While few, function as debugging systems providing some additional facilities, like DDD, Gnat or JBixle do: Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work The current situation Stagnation. Today’s advancement in IDEs although constantly offering new features and facilites has left debugging system nearly where there were 20 or more years ago. Adoption of academically proposed features ranges from slow to none. Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work High-Level debugging Our Proposition: "High-level debugging systems" that can intergrate legacy technologies, not by just providing ’graphical access’ but by offering more sophisticated methods of monitoring a software system and new ways for a programmer to form his development cycle. Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Related Work Published Related Work Domain-specific debugging languages (Duel,opium, others) Replay, reverse debugging and tracing Language-aware tools, Harmonia Project – Berkeley A lot of work on parallel execution Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Related Work Related Technological Advancements Gdb 7.0 debugging-scripting, reverse execution JBixle call-graph and data-visualizations (much like ddd) ODB, Cisco debugger and others reverse execution Visual Studio’s visualisers Mathematica Arbitary computation and math visualisations Nikos Papoylias High-Level Debuggers Introduction - Background Rethinking the Debugging Information Flow The Problem The 5 pillars of our HLD systems Our Approach Implementation Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages40 Page
-
File Size-