我需要一些随机崩溃的建议我面对单调,我认为与我如何使用UI有关,有时我得到一个未知的选择器错误。
下面:
堆栈跟踪:
at< 0xffffffff> at(包装器托管到本机)MonoMac.AppKit.NSApplication.NSApplicationMain(int,string []) 在/Users/builder/data/lanes/xamcore-lion-1.10-branch/834542f8/source/xamcore/src/AppKit/NSApplication.cs:105中的MonoMac.AppKit.NSApplication.Main(string [])[0x00041] 在Touring.MacOSX.MainClass.Main(string [])[0x00005] in /Users/starlingonzalez/Desktop/TouringProject/Touring/Touring.MacOSX/Main.cs:17 at(wrapper runtime-invoke).runtime_invoke_void_object(object,intptr,intptr,intptr)
原生堆栈跟踪:
来自gdb的调试信息:
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
^ d
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
^ d
放弃
qu执行' /tmp/mono-gdb-commands.rDRFXp'中的命令。
(lldb)进程附加--pid 4585
过程4585停止
可执行模块设置为" /Users/starlingonzalez/Desktop/TouringProject/Touring/Touring.MacOSX/bin/Release/Touring.app/Contents/MacOS/Touring"。
架构设置为:i486-apple-macosx。
(lldb)线程列表
过程4585停止
* thread#1:tid = 0x19905,0x9a730fed libsystem_kernel.dylib __wait4 + 5, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
thread #2: tid = 0x19911, 0x9a731992 libsystem_kernel.dylib
kevent64 + 10,queue =' com.apple.libdispatch-manager'
线程#3:tid = 0x19912,0x9a731046 libsystem_kernel.dylib __workq_kernreturn + 10
thread #4: tid = 0x19914, 0x9a731046 libsystem_kernel.dylib
__ workq_kernreturn + 10
线程#5:tid = 0x19916,0x9a72bfb6 libsystem_kernel.dylib semaphore_wait_trap + 10
thread #6: tid = 0x19917, 0x9a730a26 libsystem_kernel.dylib
__ recvfrom + 10
线程#7:tid = 0x19919,0x9a731046 libsystem_kernel.dylib __workq_kernreturn + 10
thread #8: tid = 0x1992d, 0x9a72bf7a libsystem_kernel.dylib
mach_msg_trap + 10
(lldb)线程回溯全部
* thread#1:tid = 0x19905,0x9a730fed libsystem_kernel.dylib __wait4 + 5, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x9a730fed libsystem_kernel.dylib
__ wait4 + 5
帧#1:0x97e70ec5 libsystem_c.dylib waitpid$UNIX2003 + 48
frame #2: 0x00187319 Touring
mono_handle_native_sigsegv(signal = 11,ctx = 0x016eafe0)+ 489 at mini-exceptions.c:2323
帧#3:0x001241a5游览mono_arch_handle_altstack_exception(sigctx=0x016eafe0, fault_addr=0x37d8f5bb, stack_ovf=0) + 149 at exceptions-x86.c:1159
frame #4: 0x001b5dbf Touring
mono_sigsegv_signal_handler(_dummy = 11,info = 0x016eafa0,context = 0x016eafe0)+ 415 at mini.c:6860
第5帧:0x963cbdeb libsystem_platform.dylib`_sigtramp + 43
线程#2:tid = 0x19911,0x9a731992 libsystem_kernel.dylib kevent64 + 10, queue = 'com.apple.libdispatch-manager'
frame #0: 0x9a731992 libsystem_kernel.dylib
kevent64 + 10
第1帧:0x974ef899 libdispatch.dylib _dispatch_mgr_invoke + 238
frame #2: 0x974ef532 libdispatch.dylib
_ dispatch_mgr_thread + 52
线程#3:tid = 0x19912,0x9a731046 libsystem_kernel.dylib __workq_kernreturn + 10
frame #0: 0x9a731046 libsystem_kernel.dylib
__ workq_kernreturn + 10
帧#1:0x902e0dcf libsystem_pthread.dylib`_pthread_wqthread + 372
线程#4:tid = 0x19914,0x9a731046 libsystem_kernel.dylib __workq_kernreturn + 10
frame #0: 0x9a731046 libsystem_kernel.dylib
__ workq_kernreturn + 10
帧#1:0x902e0dcf libsystem_pthread.dylib`_pthread_wqthread + 372
线程#5:tid = 0x19916,0x9a72bfb6 libsystem_kernel.dylib semaphore_wait_trap + 10
frame #0: 0x9a72bfb6 libsystem_kernel.dylib
semaphore_wait_trap + 10
帧#1:0x00327fce在gc.c中游览mono_sem_wait(sem=<unavailable>, alertable=<unavailable>, sem=0x0042d700, alertable=1) + 30 at mono-semaphore.c:103
frame #2: 0x00209eab Touring
finalizer_thread(unused = 0x00000000)+ 187:1077
帧#3:0x002e8395在threads.c:707中游览start_wrapper [inlined] start_wrapper_internal(data=0x7be2fb40) + 523 at threads.c:660
frame #4: 0x002e818a Touring
start_wrapper(data = 0x7be2fb40)+ 26
帧#5:0x00328cfd游览inner_start_thread(arg=0xbff36670) + 253 at mono-threads-posix.c:100
frame #6: 0x902df5fb libsystem_pthread.dylib
_ pthread_body + 144
第7帧:0x902df485 libsystem_pthread.dylib`_pthread_start + 130
线程#6:tid = 0x19917,0x9a730a26 libsystem_kernel.dylib __recvfrom + 10
frame #0: 0x9a730a26 libsystem_kernel.dylib
__ recvfrom + 10
帧#1:0x97e710c9 libsystem_c.dylib recv$UNIX2003 + 54
frame #2: 0x00100480 Touring
socket_transport_recv(buf = 0xb039af2d,len = 11)+ 160在debugger-agent.c:1131
帧#3:0x000fc4bb在mono-threads-posix.c:100中巡回debugger_thread(arg=0x00000000) + 22267 at debugger-agent.c:1557
frame #4: 0x00328cfd Touring
inner_start_thread(arg = 0xbff36680)+ 253
第5帧:0x902df5fb libsystem_pthread.dylib _pthread_body + 144
frame #6: 0x902df485 libsystem_pthread.dylib
_ pthread_start + 130
线程#7:tid = 0x19919,0x9a731046 libsystem_kernel.dylib __workq_kernreturn + 10
frame #0: 0x9a731046 libsystem_kernel.dylib
__ workq_kernreturn + 10
帧#1:0x902e0dcf libsystem_pthread.dylib`_pthread_wqthread + 372
线程#8:tid = 0x1992d,0x9a72bf7a libsystem_kernel.dylib mach_msg_trap + 10
frame #0: 0x9a72bf7a libsystem_kernel.dylib
mach_msg_trap + 10
帧#1:0x9a72b16c libsystem_kernel.dylib mach_msg + 68
frame #2: 0x9a577bf9 CoreFoundation
__ CFRunLoopServiceMachPort + 169
帧#3:0x9a5771d1 CoreFoundation __CFRunLoopRun + 1393
frame #4: 0x9a5769ea CoreFoundation
CFRunLoopRunSpecific + 394
帧#5:0x9a57684b CoreFoundation CFRunLoopRunInMode + 123
frame #6: 0x90c95b88 AppKit
_ NSEventThread + 283
帧#7:0x902df5fb libsystem_pthread.dylib _pthread_body + 144
frame #8: 0x902df485 libsystem_pthread.dylib
_ pthread_start + 130
(lldb)分离
从过程4585中分离
(lldb)退出
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试升级到Mono 3.6。它解决了许多线程问题,包括创建大量短线程的问题。
答案 2 :(得分:0)
好的,我经过多次尝试后想出来,赶紧到处,你可以在AppDelegate.cs类的构造函数中输入以下内容:
AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => {
Exception GivenException = (Exception) e.ExceptionObject;
Console.WriteLine( GivenException.Message);
Console.WriteLine( GivenException.StackTrace);
Console.WriteLine("Runtime terminating: {0}", e.IsTerminating);
};
这不会避免应用程序终止,但至少你会确切地知道在哪里寻找并解决问题。
如果有人遇到同样的问题,请放在这里。