Date post: | 06-Apr-2016 |
Category: |
Documents |
Upload: | karoline-berger |
View: | 224 times |
Download: | 4 times |
Visuelles Debugging
Vortrag im Seminar: „Software - Visualisierung“
SS 2002
Freie Universität Berlin
Enrico Heine
Prof. Löhr
Gliederung
1. Debuggen allgemein
2. Visuelle Debugger
3. Pro und Kontra
4. „praktische“ Beispiele
Visuelles Debugging
Visuelles Debugging 1. Debuggen allgemein
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 <=
Visuelles Debugging 1. Debuggen allgemein
1.2 Vorgehen beim Debuggen
• Worin besteht der Fehler?• Wo befindet sich der Fehler?• Fehler beheben• Fehlerbehebung testen!
Visuelles Debugging 1. Debuggen allgemein
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
Visuelles Debugging 1. Debuggen allgemein
1.4 Klassen von Bugs
• Laufzeitfehler• Logische Fehler• Speicherfehler• Umgebungsfehler• Toolfehler• Hard- und Softwarefehler• Konzeptionsfehler
Häufigkeit des Auftretens Fehlerbehebungsmöglickeit
Debugger Unterstützung
Visuelles Debugging 2. visuelle Debugger
2.1 Grundprinzipien
Heisenberg - Prinzip
Wahrheitsprinzip
=> Die Benutzung eines Debuggers darf das Verhalten des Programmes nicht verändern!
=> Die Informationen des Debuggers müssen Wahrheitsgemäß sein!
Visuelles Debugging 2. visuelle Debugger
2.2 visualisierbare Daten
Statische Informationen
•Pretty Paint
- Syntax Hervorhebung
- Überwachung der Klammerung- automatische Textausrichtung
•Reengineering Tools
-Erzeugung von Struktogrammen oder Klassendiagrammen aus Quelltext
Visuelles Debugging 2. visuelle Debugger
2.2 visualisierbare Daten
Dynamische Informationen
•Datenstrukturen
•Datenfluß
•Siehe Vortrag DDD
•Breakpoints
•Siehe Vortrag Jinsight
Visuelles Debugging 2. visuelle Debugger
2.3 Interaktion Benutzer <=> Debugger
•Breakpoint = Haltepunkt bei dem das Programm stoppt
•Debuggee = Prozeß, der vom Debugger kontrolliert wird
•Single Step = Programm wird zeilenweise ausgeführt
Begriffe
Visuelles Debugging 2. visuelle Debugger
2.3 Interaktion Benutzer <=> Debugger
USER Interface
Debugger Schnittstelle des Betriebssystems
bzw.
JVMDI (Java Virtual Machine Debugging Interface)
Kernel
Allgemeiner Aufbau
Visuelles Debugging 2. visuelle Debugger
2.3 Interaktion Benutzer <=> Debugger
Debuggee (OS) / JVMDI Debugger
Signal: Debuggee ist auf
Breakpoint gestoßen ist Meldung: Breakpoint gefunden
Fordert: Zustand
Fordert: Zustand
Lieferung: ZustandLieferung: Zustand
ZeitSetzen: Breakpoint
Setzen: BreakpointStart
Stopp
Start
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
JBuilderUnterstützte Funktionen:
• Pretty Paint• Watchlists für Variablen und Ausdrücke• Stackanzeige• Single Step• Breakpoints:
• ZeilenBP:• ExceptionBP:• KlassenBP:• MethodenBP:
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
JSWATUnterstützte Funktionen:
• Pretty Paint• Watchlists• Single Step• Stackanzeige• Breakpoints
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
DDDUnterstü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
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
DDD
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
ZStep95 - für Common Lisp- „merkt“ sich den kompletten Programmzustand
Visuelles Debugging 2. visuelle Debugger
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
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
ISVL
Visuelles Debugging 2. visuelle Debugger
2.4 visuelle Debugger (Systeme)
ISVL
Visuelles Debugging 2. visuelle Debugger
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
Visuelles Debugging 2. visuelle Debugger
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
Visuelles Debugging 3. visuelle Debugger
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
Visuelles Debugging 3. visuelle Debugger
CONTRA • Visualisierung von Daten - & Datenstrukturen im
komplexen unübersichtlich
• Der Fehler steckt im Detail! Visualisierungs- algorithmen vereinfachen und abstrahieren => Widerspruch zu den Grundprinzipien
Visuelles Debugging 4. visuelle Debugger
„praktische Beispiele“
JBuilder & Jswat
Beispiele für:- Breakpoints- Watchlisten
- Stackanzeigen
Visuelles Debugging 5. Literatur
• 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/