1

ServiceStack.Text.JsConfig.RegisterTypeForAot();を使用しようとしています。実行時にAOTの問題を解決するために使用されていないが、呼び出しが多すぎると他の奇妙な問題が発生したメソッドで。クラス、構造体、列挙型など、さまざまなタイプへの呼び出しが10回あります。9回の呼び出しがあると、すべてが正常に機能します。いくつかのタイプをシャッフルしたので、それが番号であると確信しています。10回の電話があると...

Stacktrace:

  at System.MonoType.ToString () [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/MonoType.cs:636
  at System.Exception.get_ClassName () [0x0000b] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:141
  at System.Exception.ToString () [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:286
  at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>
  at System.Type.Equals (System.Type) [0x00020] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:471
  at System.Type.IsAssignableFrom (System.Type) [0x00008] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:863
  at System.Collections.Generic.EqualityComparer`1<intptr>..cctor () [0x00029] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/EqualityComparer.cs:42
  at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>
  at System.Collections.Generic.Dictionary`2<intptr, System.WeakReference>.Init (int,System.Collections.Generic.IEqualityComparer`1<intptr>) [0x00012] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:265
  at System.Collections.Generic.Dictionary`2<intptr, System.WeakReference>..ctor () [0x00006] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:223
  at MonoTouch.ObjCRuntime.Runtime..cctor () <IL 0x00000, 0x0002b>
  at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

    0   TouchContainer                      0x028dbda5 mono_handle_native_sigsegv + 244
    1   TouchContainer                      0x028a3cfd mono_sigsegv_signal_handler + 172
    2   libsystem_c.dylib                   0x320e8e93 _sigtramp + 42
    3   TouchContainer                      0x0093aa25 ServiceStack_Text_Common_JsWriter_WriteEnumFlags_System_IO_TextWriter_object + 381

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

TouchContainerはアプリの名前です。

これはアプリの実行の非常に早い段階で発生しているため、AOTのバグか、不正なコードを発行しているものである必要があります。

誰かアイデアはありますか?これにXamarinでチケットを記録しますか?小さな再現プロジェクトを作成するのは難しいようです...

4

1 に答える 1

1

Rolf は (バグ コメントで) monotouch 引数に -f を追加することを提案しました。これで直ったようです。

于 2012-12-11T21:56:10.737 に答える