servicestack,segmentation-fault,aot,Xamarin.ios,servicestack,Segmentation Fault,Aot" /> servicestack,segmentation-fault,aot,Xamarin.ios,servicestack,Segmentation Fault,Aot" />

Xamarin.ios 调用ServiceStack.Text.JsConfig.RegisterTypeForAot<;T>;(); 使用MonoTouch时,设备启动时会导致SIGSEGV

Xamarin.ios 调用ServiceStack.Text.JsConfig.RegisterTypeForAot<;T>;(); 使用MonoTouch时,设备启动时会导致SIGSEGV,xamarin.ios,servicestack,segmentation-fault,aot,Xamarin.ios,servicestack,Segmentation Fault,Aot,我一直在尝试使用ServiceStack.Text.JsConfig.RegisterTypeForAot();在一个方法中,该方法在运行时不用于解决AOT问题,但在调用太多AOT时遇到了其他奇怪的问题。我有10个不同类型的调用,包括类、结构和枚举。当我有9个电话时,一切都很好,我已经把一些类型混在一起了,所以我很确定这是号码。当我有10个电话时,我会接到 Stacktrace: at System.MonoType.ToString () [0x00000] in /Developer/

我一直在尝试使用ServiceStack.Text.JsConfig.RegisterTypeForAot();在一个方法中,该方法在运行时不用于解决AOT问题,但在调用太多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.
=================================================================
Stacktrace:
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/MonoType.cs:636中的System.MonoType.ToString()[0x00000]处
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:141中的System.Exception.get_ClassName()[0x0000b]处
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:286中的System.Exception.ToString()[0x00000]处
at(包装器运行时调用)object.runtime_invoke_dynamic(intptr、intptr、intptr、intptr)
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:471中的System.Type.Equals(System.Type)[0x00020]处
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:863中的System.Type.IsAssignableFrom(System.Type)[0x00008]处
位于/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/EqualityComparer`1..cctor()[0x00029]中的System.Collections.Generic/EqualityComparer.cs:42
at(包装器运行时调用)object.runtime_invoke_dynamic(intptr、intptr、intptr、intptr)
在/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:265中的System.Collections.Generic.Dictionary`2.Init(int,System.Collections.Generic.IEqualityComparer`1)[0x00012]
位于/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:223中的System.Collections.Generic.Dictionary`2..ctor()[0x00006]
在MonoTouch.ObjCRuntime.Runtime..cctor()上
at(包装器运行时调用)object.runtime_invoke_dynamic(intptr、intptr、intptr、intptr)
本机堆栈跟踪:
0 TouchContainer 0x028dbda5单声道句柄本机sigsegv+244
1个触摸容器0x028a3cfd单信号处理器+172
2 libsystem_c.dylib 0x320e8e93_sigtramp+42
3 TouchContainer 0x0093aa25 ServiceStack\u Text\u Common\u JsWriter\u WriteEnumFlags\u System\u IO\u TextWriter\u object+381
=================================================================
在执行本机代码时收到SIGSEGV。这通常表明
mono运行时或某个本机库中出现致命错误
由您的应用程序使用。
=================================================================
TouchContainer是应用程序的名称

这似乎是在应用程序运行的早期发生的,它一定是AOT中的一个bug或是发出错误代码的东西


有人有什么想法吗?我要在这上面写张Xamarin的票吗?看起来要完成一个小的复制项目可能会很棘手

Rolf建议(在bug注释中)在monotouch参数中添加-f。这似乎已经修复了它。

Rolf建议(在bug注释中)在monotouch参数中添加-f。这似乎已经解决了它。

这看起来像是MonoTouch中的一个bug。我建议您将一个bug()与一个测试用例一起归档-它不一定要小,但最好是易于复制(例如,必须点击30分钟不是一个好的测试用例,但如果它在启动时就崩溃了,我会说只需按原样添加您的项目)。这看起来像MonoTouch中的某个bug。我建议你用一个测试用例提交一个bug(),它不一定要小,但最好是易于复制(例如,必须点击30分钟不是一个好的测试用例,但如果它在启动时崩溃,我会说只需按原样添加你的项目)。