我需要一些关于我在 monomac 中遇到的随机崩溃的建议,我认为这与我使用 UI 的方式有关,有时我得到一个未知的选择器错误。
这里:
堆栈跟踪:
在 <0xffffffff> at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) at MonoMac.AppKit.NSApplication.Main (string[]) [0x00041] in /Users/builder/data /lanes/xamcore-lion-1.10-branch/834542f8/source/xamcore/src/AppKit/NSApplication.cs:105 at 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 的调试信息:
(lldb) 进程附加 --pid 4585 进程 4585 已停止设置为“/Users/starlingonzalez/Desktop/TouringProject/Touring/Touring.MacOSX/bin/Release/Touring.app/Contents/MacOS/Touring”的可执行模块。架构设置为:i486-apple-macosx。(lldb) 线程列表进程 4585 已停止 * 线程 #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,队列 = '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) 线程回溯所有 * 线程 #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() + 489 at mini-exceptions.c:2323 frame #3: 0x001241a5 Touring 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 frame #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 Touring 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 at gc.c:1077 frame #3: 0x002e8395 Touring start_wrapper [inlined] start_wrapper_internal(data=0x7be2fb40) + 523 at threads.c:660
frame #4: 0x002e818a Touring
start_wrapper(data=06b40) threads.c:707 帧#5:0x00328cfd Touring 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 at debugger-agent.c:1131 帧 #3: 0x000fc4Touring debugger_thread(arg=0x00000000) + 22267 at debugger-agent.c:1557
frame #4: 0x00328cfd Touring
innerstart_ (arg=0xbff36680) + 253 at mono-threads-posix.c:100 frame #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
thread #8: tid = 0x1992d, 0x9a72bf7a libsystem_kernel.dylib mach_msg_trap + 10
frame #0: 0x9a72bf7a libsystem_kernel.dylib
mach_msg_trap + 10 frame #1: 0x9a72b16c libsystem_kernel.dylib mach_msg + 68
frame #2: 0x9a577bf9 CoreFoundation
__CFRunLoopServiceMachPort + 169 frame #3: 0x9a5771d1 CoreFoundation __CFRunLoopRun + 1393
frame #4: 0x9a5769ea CoreFoundation
CFRunLoopRunSpecific + 394 frame #5: 0x9a57684b CoreFoundation CFRunLoopRunInMode + 123
frame #6: 0x90c95b88 AppKit
_NSEventThread + 283 frame #7: 0x902df5fb libsystem_pthread .dylib _pthread_body + 144
frame #8: 0x902df485 libsystem_pthread.dylib
_pthread_start + 130 (lldb) detach 从进程 4585 (lldb) 中分离退出