In-System-Debugging von Java-Programmen in der AmbiComp-Virtual-Machine
- Subject:Peer-to-peer
- Type:Study Thesis
- Date:03.08.2009
- Supervisor:
Prof. Dr. Frank Bellosa, Johannes Eickhold
- Graduand:Wolf-Dennis Pahl
- Links:PDF
BibTeX -
Abstract:
Immer mehr Mikrocontroller lassen sich mit Java programmieren und steuern. Die Entwicklung der Java-Programme findet dabei auf Entwicklungscomputern und nicht auf den Mikrocontrollern statt, da die Ressourcen von Mikrocontrollern in der Regel für die Entwicklungstools zu gering sind.
Da sich die Java-VMs auf Entwicklungsrechner und Mikrocontroller in ihrem Funktionsumfang unterscheiden, ist es für Entwickler interessant das Verhalten von Java- Programmen auf der Zielhardware zu beobachten. Aus diesem Grund bieten einige Debugger die Möglichkeit des Remote-Debuggings. Remote-Debugging bedeutet, dass Debugger und zu debuggendes Programm auf unterschiedlichen Systemen laufen.
Das von Sun Microsystems für die Kommunikation zwischen Debugger und Java-VM vorgesehene Protokoll ist nicht auf geringen Ressourcenverbrauch optimiert. Es ist deshalb für die direkte Kommunikation mit einer Java-VM auf einem Mikrocontroller ungeeignet.
Eine mögliche Lösung, um die Kommunikation zwischen Debugger und Java-VM zu ermöglichen, ist ein Debug-Proxy, der zwischen dem Debugger und der Java-VM vermittelt. Im AmbiComp-Projekt wird dieser Ansatz gewählt, um In-System-Debugging von Java-Programmen auf der AmbiComp-Virtual-Machine zu ermöglichen.
Es existieren noch andere Lösungsmöglichkeiten, die im Falle von AmbiComp aber aus unterschiedlichen Gründen ungeeignet sind. Diese Arbeit erläutert naheliegende Lösungsansätze und zeigt ihre Vor- und Nachteile.
Die restliche Arbeit geht genauer auf die gewählte Lösung mittels AmbiComp-Debug- Proxy (ADP) ein. Die Implementierung des ADP wird vorgestellt. Konkrete Probleme, die beim Realisieren des Debug-Proxys auftreten, werden aufgezeigt und jeweils eine mögliche Lösung präsentiert.
BibTex:
@studythesis{pahl09insysdebugging,
author = {Wolf-Dennis Pahl},
title = {In-System-Debugging von Java-Programmen in der AmbiComp-Virtual-Machine},
type = {Study Thesis},
address = {System Architecture Group, University of Karlsruhe, Germany},
month = aug # "~3",
year = 2009,
url = {http://i30www.ira.uka.de/teaching/theses/pasttheses/}
}