30.01.2014 Aufrufe

Abstract-Band - Fakultät für Informatik, TU Wien - Technische ...

Abstract-Band - Fakultät für Informatik, TU Wien - Technische ...

Abstract-Band - Fakultät für Informatik, TU Wien - Technische ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

zeigt die einzelnen Werte der Variablen innerhalb der Komponenten eines<br />

XVSM Cores an, und diese können auch geändert werden. Des Weiteren stellt<br />

der XVSM-Editor eine einfache Monitoringfunktion bereit. Auch auf die<br />

Erweiterbarkeit des XVSM wurde eingegangen und eine Technik integriert,<br />

mit der man den Inhalt von selbst geschriebenen Aspekten oder<br />

Koordinatoren anzeigen kann. Der entwickelte Prototyp wurde an Hand von<br />

Ergebnissen der untersuchten verwandten Arbeiten und einer Literaturrecherche<br />

kreiert. Mit Hilfe des Editors ist es sehr einfach eine Konfiguration von<br />

einem XVSM Core zu laden, zu bearbeiten, und diese auf weitere XVSM Cores<br />

zu verteilen. Das Erstellen einer Konfiguration ist in diesem Fall auch weniger<br />

fehleranfällig, da der Benutzer nur bestimmte vorgegebene Komponenten<br />

hinzufügen oder entfernen kann. Der besondere Nutzen dieser Lösung liegt<br />

darin, dass man die Visualisierung und die Verteilung der Konfiguration in<br />

einem einzigen Editor auf einfache Art und Weise erledigen kann.<br />

Patrick Sabin<br />

Implementing a Reversible Debugger for Python<br />

Studium: Masterstudium Software Engineering & Internet Computing<br />

Betreuer: Ao.Univ.Prof. Dr. Martin Ertl<br />

There are two different methods of implementing a reversible debugger, i.e.,<br />

a debugger which can run the program forwards and backwards. The first one<br />

is the logging-based approach, which records the state of the program after<br />

every instruction and allows inspection after the program has finished<br />

running. The second one is the replay-based approach, where the debugger<br />

runs the debuggee interactively. For this purpose it makes periodic snapshots.<br />

The debugger runs the debuggee backwards by restoring a previous snapshot<br />

and then running the program forward until it reaches the desired<br />

position. In this thesis, I show that it is possible to implement a reversible debugger<br />

by continuous snapshotting of the program state. There are indeed<br />

some challenges with using such a feature. For example, there are non-deterministic<br />

instructions, which execute differently each instance the interpreter<br />

executes them, e.g., a function, which returns the system time. Therefore I<br />

present some methods of treating these problems. Accompanying this thesis,<br />

I have developed a proof-of-concept implementation of a reversible<br />

debugger called epdb for the Python programming language, which solves<br />

most of the problems of reversible debugging. In order to support reversible<br />

debugging of programs which have non-deterministic instructions in it, I<br />

introduce the new concept of timelines. With timelines, the user can decide<br />

which execution path he wants to take. I also introduce stateful resource<br />

management to support the management of the external state. This allows<br />

the user to investigate the environment corresponding to the actual position<br />

inside the program, when he executes the program backwards.<br />

57

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!