Mono fürs iPhone lernt Debugging

Bislang ließen sich Fehler in .NET-Anwendungen für das iPhone nur auf der Kommandozeile mit dem freien GDB lokalisieren. MonoTouch 1.2 integriert erstmals einen Soft-Debugger in die hauseigene Entwicklungsumgebung.

In Pocket speichern vorlesen Druckansicht 23 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christian Kirsch

Miguel de Icaza beschreibt in einem Blog-Beitrag, wie sich Mono-Anwendungen auf dem iPhone mit dem neuen "Soft-Debugger" untersuchen lassen. Das Werkzeug ist in dem gerade erschienenen MonoTouch 1.2 enthalten.

Den Soft-Debugger gibt es schon seit Mono 2.6. Er gehört zur Mono-Laufzeitumgebung und kommuniziert mit einem an das Java Debug Wire Protocol angelehnten Protokoll mit der Außenwelt. Auf der Gegenseite befindet sich die Assembly Mono.Debugger.Soft. In die IDE integriert, erlaubt sie die Fehlersuche per TCP/IP in einer Mono-Anwendung – sowohl im iPhone-Simulator als auch auf einem Gerät.

Der Soft-Debugger hält das iPhone an Breakpoints an.

(Bild: codesnack.com)

Mit der Konfiguration "Debug|iPhone" in MonoDevelop erstellte Anwendungen bieten im Einstellungsdialog auf dem iPhone Felder für die Kommunikationsparameter des Debuggers. Auf dem Host-Rechner lassen sich Haltepunkte setzen (s. Bild), Variablenwerte überwachen und der Call-Stack anzeigen. Allerdings kann der Soft-Debugger die Anwendung nicht auf Knopfdruck anhalten, wie Icaza schreibt.

In seiner eigenen Entwicklungsumgebung Xcode stellt Apple zwar ebenfalls einen Debugger bereit. Das Protokoll, das er für den Austausch mit dem im Unterbau benutzten freien GDB benutzt, ist jedoch nicht veröffentlicht. Um unabhängig von späteren Änderungen zu bleiben, haben die Mono-Entwickler darauf verzichtet, es zu analysieren und nachzubauen.

Das von Novell geförderte Mono-Projekt arbeitet an einer Open-Source-Variante von Microsofts .NET-Framework. MonoTouch erlaubt es, bestimmte .NET-Anwendungen auf dem iPhone zu betreiben. Da Apple den Einsatz von virtuellen Maschinen auf dem Telefon nicht zulässt, enthält das SDK einen Compiler, der CLI-Assemblies in nativen iPhone-Code übersetzt. (ck)