Unity zeigt Debugging von generiertem IL2CPP-Code

Unity veröffentlichte am 20. Mai 2015 einen technischen Beitrag zum Debugging von C++-Code, den IL2CPP aus .NET Intermediate Language erzeugt. Die Anleitung zeigt anhand eines iOS-Projekts, wie sich Fehler im generierten Code mit Xcode untersuchen lassen.

Für das Beispiel nutzte Unity 5.0.1p3 unter OS X und die Option Development Player. Dadurch behält der erzeugte C++-Code die Namen von Typen und Methoden aus dem IL-Code. Das erleichtert die Suche nach einer Methode wie HelloWorld_Start_m3 im Xcode-Projekt.

Haltepunkte im generierten C++

Breakpoints lassen sich direkt in Methoden oder an bestimmten Zeilen der generierten Dateien setzen. Unity legt diese Dateien im Verzeichnis Classes/Native des Xcode-Projekts ab. Für Fehler in verwaltetem Code verweist der Beitrag außerdem auf il2cpp_codegen_raise_exception und auf einen C++-Exception-Breakpoint für Il2CppExceptionWrapper.

Strings liegen in IL2CPP als UTF-16-Datenstrukturen vor. Über il2cpp::utils::StringUtils::Utf16ToUtf8 kann der Inhalt im LLDB-Prompt sichtbar gemacht werden. Bei einer NullReferenceException führt der Call Stack anschließend von der Laufzeitfunktion zurück zur eingefügten NullCheck-Prüfung. Die vorherige IL2CPP-Erklärung beschreibt die Architektur aus AOT-Compiler und Laufzeitbibliothek.

Managed-Code-Debugger noch nicht veröffentlicht

Unity kündigte außerdem einen internen, noch nicht veröffentlichungsreifen Debugger für verwalteten Code an. Der nächste Beitrag der Serie sollte sich mit den Laufzeitkosten verschiedener Methodenaufrufe befassen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein