In-System-Debugging von Java-Programmen in der AmbiComp-Virtual-Machine

  • Forschungsthema:Peer-to-peer
  • Typ:Studienarbeit
  • Datum:03.08.2009
  • Betreuung:

    Prof. Dr. Frank Bellosa, Johannes Eickhold

  • Bearbeitung: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/}
    }