+ All Categories
Home > Documents > Visuelles Debugging Vortrag im Seminar: „Software - Visualisierung“ SS 2002 Freie Universität...

Visuelles Debugging Vortrag im Seminar: „Software - Visualisierung“ SS 2002 Freie Universität...

Date post: 06-Apr-2016
Category:
Upload: karoline-berger
View: 224 times
Download: 4 times
Share this document with a friend
26
Visuelles Debugging Vortrag im Seminar: „Software - VisualisierungSS 2002 Freie Universität Berlin Enrico Heine Prof. Löhr
Transcript
Page 1: Visuelles Debugging Vortrag im Seminar: „Software - Visualisierung“ SS 2002 Freie Universität Berlin Enrico Heine Prof. Löhr.

Visuelles Debugging

Vortrag im Seminar: „Software - Visualisierung“

SS 2002

Freie Universität Berlin

Enrico Heine

Prof. Löhr

Page 2: 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

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

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 <=

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

Visuelles Debugging 1. Debuggen allgemein

1.2 Vorgehen beim Debuggen

• Worin besteht der Fehler?• Wo befindet sich der Fehler?• Fehler beheben• Fehlerbehebung testen!

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

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

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

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

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

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!

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

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

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

Visuelles Debugging 2. visuelle Debugger

2.2 visualisierbare Daten

Dynamische Informationen

•Datenstrukturen

•Datenfluß

•Siehe Vortrag DDD

•Breakpoints

•Siehe Vortrag Jinsight

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

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

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

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

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

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

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

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:

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

Visuelles Debugging 2. visuelle Debugger

2.4 visuelle Debugger (Systeme)

JSWATUnterstützte Funktionen:

• Pretty Paint• Watchlists• Single Step• Stackanzeige• Breakpoints

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

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

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

Visuelles Debugging 2. visuelle Debugger

2.4 visuelle Debugger (Systeme)

DDD

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

Visuelles Debugging 2. visuelle Debugger

2.4 visuelle Debugger (Systeme)

ZStep95 - für Common Lisp- „merkt“ sich den kompletten Programmzustand

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

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

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

Visuelles Debugging 2. visuelle Debugger

2.4 visuelle Debugger (Systeme)

ISVL

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

Visuelles Debugging 2. visuelle Debugger

2.4 visuelle Debugger (Systeme)

ISVL

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

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

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

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

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

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

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

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

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

Visuelles Debugging 4. visuelle Debugger

„praktische Beispiele“

JBuilder & Jswat

Beispiele für:- Breakpoints- Watchlisten

- Stackanzeigen

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

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/


Recommended