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