2012-12-10 24 views
1

我一直在嘗試使用ServiceStack.Text.JsConfig.RegisterTypeForAot();在一個沒有在運行時使用的方法來治癒我的AOT問題,但當我有太多的調用時遇到了其他奇怪的問題。我有10個調用各種類型,包括類,結構和枚舉。當我有9個電話一切正常,我已經洗牌了一些類型,所以我很確定這是數字。當我有10個電話,我得到...調用ServiceStack.Text.JsConfig.RegisterTypeForAot <T>();與MonoTouch導致啓動SIGSEGV在設備上

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上登記一張票嗎?看起來像處理小型repro項目可能會很棘手......

+0

這看起來像是MonoTouch中的某個地方。我建議你用一個測試用例提交一個bug(http://bugzilla.xamarin.com) - 它不一定非常小,但最好是易於重現(即不必點擊大約30分鐘就不會做一個好的測試用例,但如果它在啓動時崩潰了,我會說剛剛添加你的項目)。 –

回答

1

Rolf建議(在bug註釋中)向monotouch參數中添加-f。這似乎修復了它。

相關問題