Fehlender (unsafe) Befehl auf der XBox360

Wie bekannt ist, kann man in C# bzw. allgemein im .NET Framework unsafe-Code verwenden. Dort sind dann unter anderem auch Zeigeroperationen und der Dereferenzierungsoperator möglich. In der Regel wird dies nicht benötigt, aber das ganze bietet – bei höherer Gefahr von Fehlern – die Möglichkeit bestimmten Code erheblich zu optimieren. Dies habe ich im Physikteil meiner Engine auch gemacht und konnte unter Windows fast 10% schnelleren Code fabrizieren. Dafür benötigte ich unter anderem den Befehl stackalloc. Dieser alloziert eine Variable auf dem Stack (ok, das ist etwas vereinfacht ausgedrückt Smile ). Dieser Befehl kompiliert zwar mit dem Compact-Framework, dass auf der XBox eingesetzt wird und es tritt scheinbar kein Fehler auf. Zur Laufzeit fabriziert dieser Befehl jedoch eine unbehandelte Ausnahme, die dann in der Regel dazu führt, dass in der aufrufenden Funktion – an vollkommen anderer Stelle – eine Exception geworfen wird. Diesen Fehler findet man auch nicht im Debugger.

So, genug geschrieben, mal wieder viel Text aber kurzer Sinn:

stackalloc geht auf der XBox360 nicht! Der Fehler wird nicht im Debugger angezeigt, sondern nur zur Laufzeit.

Advertisements

Veröffentlicht am 21.01.2010, in Grundlagen, XBox360, XNA. Setze ein Lesezeichen auf den Permalink. Hinterlasse einen Kommentar.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: