1 / 26

Visuelles Debugging

Visuelles Debugging. Vortrag im Seminar: „ Software - Visualisierung “. Freie Universität Berlin. Prof. Löhr. SS 2002. Enrico Heine. Gliederung. Visuelles Debugging. 1. Debuggen allgemein 2. Visuelle Debugger 3. Pro und Kontra 4. „praktische“ Beispiele. 1. Debuggen allgemein.

koen
Download Presentation

Visuelles Debugging

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visuelles Debugging Vortrag im Seminar: „Software - Visualisierung“ Freie Universität Berlin Prof. Löhr SS 2002 Enrico Heine

  2. Gliederung Visuelles Debugging 1. Debuggen allgemein 2. Visuelle Debugger 3. Pro und Kontra 4. „praktische“ Beispiele

  3. 1. Debuggen allgemein Visuelles Debugging 1.1 Begriff Debugger / Debugging • Bug = Wanze • Debuggen = Entwanzen, Beseitigung von Fehlern • Begriff von Compilerbaupionierin Grace Hopper geprägt: • „Ein solches Insekt, von einer glühenden Kathodenstrahlröhre angelockt, setzte ihren Mark2 Computer außer Betrieb.“ => Seit dem werden Fehler Bugs genannt <=

  4. 1. Debuggen allgemein Visuelles Debugging 1.2 Vorgehen beim Debuggen • Worin besteht der Fehler? • Wo befindet sich der Fehler? • Fehler beheben • Fehlerbehebung testen!

  5. 1. Debuggen allgemein Visuelles Debugging 1.3 Probleme beim Debuggen Technische Probleme • Symptome & Ursachen können sich an verschiedenen Stellen befinden • Seiteneffekte können auftreten Psychologische Probleme • Was nicht sein kann ... • Man sieht was man erwartet => Zuweisungsfehler lassen sich 3x schwerer erkennen

  6. 1. Debuggen allgemein Visuelles Debugging 1.4 Klassen von Bugs • Laufzeitfehler • Logische Fehler • Speicherfehler • Umgebungsfehler • Toolfehler • Hard- und Softwarefehler • Konzeptionsfehler Fehlerbehebungsmöglickeit Häufigkeit des Auftretens Debugger Unterstützung

  7. 2. visuelle Debugger Visuelles Debugging 2.1 Grundprinzipien Heisenberg - Prinzip => Die Benutzung eines Debuggers darf das Verhalten des Programmes nicht verändern! Wahrheitsprinzip => Die Informationen des Debuggers müssen Wahrheitsgemäß sein!

  8. 2. visuelle Debugger Statische Informationen Visuelles Debugging 2.2 visualisierbare Daten • Pretty Paint -Syntax Hervorhebung - Überwachung der Klammerung - automatische Textausrichtung • Reengineering Tools • -Erzeugung von Struktogrammen oder Klassendiagrammen aus Quelltext

  9. 2. visuelle Debugger Dynamische Informationen Visuelles Debugging 2.2 visualisierbare Daten • Datenstrukturen • Datenfluß • Breakpoints • Siehe Vortrag DDD • Siehe Vortrag Jinsight

  10. 2. visuelle Debugger Visuelles Debugging 2.3 Interaktion Benutzer <=> Debugger Begriffe • Breakpoint = Haltepunkt bei dem das Programm stoppt • Single Step = Programm wird zeilenweise ausgeführt • Debuggee = Prozeß, der vom Debugger kontrolliert wird

  11. 2. visuelle Debugger Visuelles Debugging 2.3 Interaktion Benutzer <=> Debugger Allgemeiner Aufbau USER Interface Kernel Debugger Schnittstelle des Betriebssystems bzw. JVMDI (Java Virtual Machine Debugging Interface)

  12. 2. visuelle Debugger Visuelles Debugging 2.3 Interaktion Benutzer <=> Debugger Debuggee (OS) / JVMDI Debugger Zeit Setzen: Breakpoint Setzen: Breakpoint Start Start Signal: Debuggee ist auf Stopp Meldung: Breakpoint gefunden Breakpoint gestoßen ist Fordert: Zustand Fordert: Zustand Lieferung: Zustand Lieferung: Zustand

  13. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) JBuilder Unterstützte Funktionen: • Pretty Paint • Watchlists für Variablen und Ausdrücke • Stackanzeige • Single Step • Breakpoints: • ZeilenBP: • ExceptionBP: • KlassenBP: • MethodenBP:

  14. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) JSWAT Unterstützte Funktionen: • Pretty Paint • Watchlists • Single Step • Stackanzeige • Breakpoints

  15. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) DDD Unterstützte Funktionen: • Watchlists • Single Step • Breakpoints • Visualisieren von Datenbeziehungen- & Strukturen: - u.a. Darstellung verzweigter Strukturen als Bäume - numerische Felder in 2 bzw. 3 dimensionalen Feldern

  16. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) DDD

  17. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) ZStep95 - für Common Lisp - „merkt“ sich den kompletten Programmzustand

  18. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) ISVL (Internet Software Visualization Laboratory) • um Fernunterricht von Prolog zu unterstützen • verteilte Fehlersuche • Prologprogramm über Java Applet => ISVL Server • Visualisierung durch transparent prolog machine • Schüler & Lehrer können Notizen hinzufügen

  19. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) ISVL

  20. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) ISVL

  21. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) PRISM • kommerziell erhältlicher Debugger von SUN • Bestandteil des High Performance Computing Pakets • Darstellung von Datenstrukturen auf Bäume beschränkt

  22. 2. visuelle Debugger Visuelles Debugging 2.4 visuelle Debugger (Systeme) • Lens: - in Quellcode müssen spezielle Animationsanweisungen eingefügt werden • VCC: - für Programmiersprache C • DEET: - benutzt externe Grafikprogramme - auf Baumstrukturen beschränkt • DUEL: - spezielle Programmiersprache für Debugger - XDUEL visualisiert die Daten von DUEL

  23. 3. visuelle Debugger Visuelles Debugging PRO • Durch Break-/Watchpoints lassen sich viele Fehler finden • durch Visualisierung von Daten & Datenstruktren lassen sich Speicher-, Zugriffs- & Fehler in Algorithmen aufspüren • Visuelle Daten sind allgemein besser zu verstehen als abstrakte

  24. 3. visuelle Debugger Visuelles Debugging CONTRA • Visualisierung von Daten - & Datenstrukturen im komplexen unübersichtlich • Der Fehler steckt im Detail! Visualisierungs- algorithmen vereinfachen und abstrahieren => Widerspruch zu den Grundprinzipien

  25. 4. visuelle Debugger Visuelles Debugging „praktische Beispiele“ JBuilder & Jswat Beispiele für: - Breakpoints - Watchlisten - Stackanzeigen

  26. 5. Literatur Visuelles Debugging • Cleve und Zeller: „Automatisches Debuggen“, 2001 • Zeller: “Datenstrukturen visualisieren und animieren mit DDD“, 2001 • Hilfethemen / Tutorials des JBuilder, Jswat, MS Visual Studio • Topic: „Seminar Visualisierung in Informatik und Naturwissenschaften - Visuelles Debugging“, 1999 • Lieberman, H.; Fry, C.: , ACM Conference on Computers and Human Interface [CHI-95], Denver, April 1995 • http://www.bluemarsh.com/java/jswat • http://www.borland.com • http://www.gnu.org/software/ddd/

More Related