Skip to content

Instantly share code, notes, and snippets.

@nosami
Created May 17, 2017 14:03
Show Gist options
  • Save nosami/876a7ca4f2e501263f009acac5aa0006 to your computer and use it in GitHub Desktop.
Save nosami/876a7ca4f2e501263f009acac5aa0006 to your computer and use it in GitHub Desktop.
Native stacktrace when running FsiExe from FCS https://github.com/fsharp/fsharp/issues/739
14:59 $ mono ../FSharp.Compiler.Service/samples/FsiExe/bin/Debug/FsiExe.exe bug739.fsx
System.ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array.
at (wrapper stelemref) System.Object:virt_stelemref_sealed_class (intptr,object)
at FSI_0001.reader (System.String path) [0x00174] in <cf74e683ec9c4c17a2eeaa76f2d33459>:0
at <StartupCode$FSI_0001>.$FSI_0001.main@ () [0x00002] in <cf74e683ec9c4c17a2eeaa76f2d33459>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <b697cffb61b74023aa9c587e6c49beb3>:0
Stopped due to error
* Assertion: should not be reached at ./sgen-scan-object.h:90
Native stacktrace:
0 mono64 0x0000000108a5a136 mono_handle_native_crash + 278
1 libsystem_platform.dylib 0x00007fffb826cbba _sigtramp + 26
2 ??? 0x0000000000000004 0x0 + 4
3 libsystem_c.dylib 0x00007fffb80f3420 abort + 129
4 mono64 0x0000000108c2dc6b mono_log_write_logfile + 363
5 mono64 0x0000000108c45550 monoeg_assertion_message + 192
6 mono64 0x0000000108c00552 drain_gray_stack + 7298
7 mono64 0x0000000108c26551 marker_idle_func + 433
8 mono64 0x0000000108c2531c thread_func + 460
9 libsystem_pthread.dylib 0x00007fffb8276aab _pthread_body + 180
10 libsystem_pthread.dylib 0x00007fffb82769f7 _pthread_body + 0
11 libsystem_pthread.dylib 0x00007fffb8276221 thread_start + 13
Debug info from gdb:
(lldb) command source -s 0 '/tmp/mono-gdb-commands.ddqhWs'
Executing commands in '/tmp/mono-gdb-commands.ddqhWs'.
(lldb) process attach --pid 56819
Process 56819 stopped
* thread #1, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fffb818dc8a libsystem_kernel.dylib`__psynch_cvwait + 10
libsystem_kernel.dylib`__psynch_cvwait:
-> 0x7fffb818dc8a <+10>: jae 0x7fffb818dc94 ; <+20>
0x7fffb818dc8c <+12>: movq %rax, %rdi
0x7fffb818dc8f <+15>: jmp 0x7fffb8186d6f ; cerror_nocancel
0x7fffb818dc94 <+20>: retq
Executable module set to "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono64".
Architecture set to: x86_64h-apple-macosx.
(lldb) thread list
Process 56819 stopped
* thread #1: tid = 0x107cdff, 0x00007fffb818dc8a libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
thread #2: tid = 0x107ce00, 0x00007fffb818e486 libsystem_kernel.dylib`__wait4 + 10, name = 'SGen worker'
thread #3: tid = 0x107ce04, 0x00007fffb818646e libsystem_kernel.dylib`semaphore_timedwait_trap + 10, name = 'Finalizer'
thread #4: tid = 0x107ce05, 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
thread #5: tid = 0x107ce06, 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
thread #6: tid = 0x107ce08, 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
thread #7: tid = 0x107ce17, 0x00007fffb818dcba libsystem_kernel.dylib`__psynch_mutexwait + 10, name = 'Threadpool worker'
(lldb) thread backtrace all
* thread #1, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x00007fffb818dc8a libsystem_kernel.dylib`__psynch_cvwait + 10
frame #1: 0x00007fffb827796a libsystem_pthread.dylib`_pthread_cond_wait + 712
frame #2: 0x0000000108c25d87 mono64`sgen_thread_pool_idle_wait [inlined] mono_os_cond_wait(mutex=0x0000000108d784d8) at mono-os-mutex.h:146 [opt]
frame #3: 0x0000000108c25d7c mono64`sgen_thread_pool_idle_wait at sgen-thread-pool.c:272 [opt]
frame #4: 0x0000000108c26e1e mono64`sgen_workers_join at sgen-workers.c:444 [opt]
frame #5: 0x0000000108bf3e04 mono64`major_copy_or_mark_from_roots(gc_thread_gray_queue=<unavailable>, old_next_pin_slot=<unavailable>, mode=COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT, object_ops_nopar=0x0000000108d79808, object_ops_par=0x0000000000000000) at sgen-gc.c:1930 [opt]
frame #6: 0x0000000108bf361e mono64`major_finish_collection(gc_thread_gray_queue=0x00007fff5725d7e0, reason="finishing", is_overflow=0, old_next_pin_slot=18446744073709551615, forced=1) at sgen-gc.c:2008 [opt]
frame #7: 0x0000000108befe7b mono64`sgen_perform_collection [inlined] major_finish_concurrent_collection(forced=1) at sgen-gc.c:2246 [opt]
frame #8: 0x0000000108befdee mono64`sgen_perform_collection(requested_size=0, generation_to_collect=1, reason=<unavailable>, wait_to_finish=1, stw=1) at sgen-gc.c:2334 [opt]
frame #9: 0x0000000108bf1723 mono64`sgen_gc_collect(generation=1) at sgen-gc.c:2753 [opt]
frame #10: 0x0000000108ba5234 mono64`mono_domain_finalize(domain=0x00007fc2a240fb80, timeout=2000) at gc.c:477 [opt]
frame #11: 0x00000001089b34ae mono64`mini_cleanup(domain=0x00007fc2a240fb80) at mini-runtime.c:4105 [opt]
frame #12: 0x0000000108b09eb5 mono64`ves_icall_System_Environment_Exit(result=1) at icall.c:6656 [opt]
frame #13: 0x0000000113922909
frame #14: 0x0000000108ecab97
frame #15: 0x0000000108ecb033
frame #16: 0x00000001089b2ad5 mono64`mono_jit_runtime_invoke(method=<unavailable>, obj=0x0000000000000000, params=<unavailable>, error=<unavailable>) at mini-runtime.c:2533 [opt]
frame #17: 0x0000000108badfd8 mono64`do_runtime_invoke(method=0x00007fc2a2606cd8, obj=0x0000000000000000, params=0x00007fff5725e180, exc=0x0000000000000000, error=0x00007fff5725e1d0) at object.c:2860 [opt]
frame #18: 0x0000000108bb14b0 mono64`do_exec_main_checked [inlined] mono_runtime_invoke_checked(method=0x00007fc2a2606cd8, obj=<unavailable>, params=0x00000001090003e8, error=0x00007fff5725e1d0) at object.c:3018 [opt]
frame #19: 0x0000000108bb146f mono64`do_exec_main_checked(method=0x00007fc2a2606cd8, args=<unavailable>, error=0x00007fff5725e1d0) at object.c:4680 [opt]
frame #20: 0x0000000108a214ee mono64`mono_jit_exec(domain=<unavailable>, assembly=<unavailable>, argc=2, argv=0x00007fc2a2408fa8) at driver.g.c:1037 [opt]
frame #21: 0x0000000108a238a5 mono64`mono_main [inlined] main_thread_handler at driver.g.c:1106 [opt]
frame #22: 0x0000000108a23872 mono64`mono_main(argc=<unavailable>, argv=<unavailable>) at driver.g.c:2215 [opt]
frame #23: 0x00000001089a3b2a mono64`main [inlined] mono_main_with_options(argc=5, argc=5, argc=5, argv=0x00007fc2a2408f90, argv=0x00007fc2a2408f90, argv=0x00007fc2a2408f90) at main.c:45 [opt]
frame #24: 0x00000001089a3b19 mono64`main(argc=4, argv=0x00007fff5725e5f8) at main.c:338 [opt]
frame #25: 0x00000001089a3484 mono64`start + 52
thread #2, name = 'SGen worker'
frame #0: 0x00007fffb818e486 libsystem_kernel.dylib`__wait4 + 10
frame #1: 0x0000000108a5a1cd mono64`mono_handle_native_crash(signal="SIGABRT", ctx=<unavailable>, info=<unavailable>) at mini-exceptions.c:2567 [opt]
frame #2: 0x00007fffb826cbba libsystem_platform.dylib`_sigtramp + 26
frame #3: 0x00007fffb818dddb libsystem_kernel.dylib`__pthread_kill + 11
frame #4: 0x00007fffb8279787 libsystem_pthread.dylib`pthread_kill + 90
frame #5: 0x00007fffb80f3420 libsystem_c.dylib`abort + 129
frame #6: 0x0000000108c2dc6b mono64`mono_log_write_logfile(log_domain=<unavailable>, level=<unavailable>, hdr=<unavailable>, message=<unavailable>) at mono-log-common.c:137 [opt]
frame #7: 0x0000000108c45550 mono64`monoeg_assertion_message [inlined] monoeg_g_logv(log_domain=<unavailable>, log_level=G_LOG_LEVEL_ERROR) at goutput.c:115 [opt]
frame #8: 0x0000000108c4550c mono64`monoeg_assertion_message(format=<unavailable>) at goutput.c:135 [opt]
frame #9: 0x0000000108c00552 mono64`drain_gray_stack [inlined] major_scan_object_no_evacuation(full_object=<unavailable>, desc=<unavailable>) at sgen-scan-object.h:90 [opt]
frame #10: 0x0000000108c00538 mono64`drain_gray_stack [inlined] drain_gray_stack_no_evacuation at sgen-marksweep-drain-gray-stack.h:339 [opt]
frame #11: 0x0000000108c00538 mono64`drain_gray_stack(queue=<unavailable>) at sgen-marksweep.c:1305 [opt]
frame #12: 0x0000000108c26551 mono64`marker_idle_func(data_untyped=0x0000000108ec0108) at sgen-workers.c:328 [opt]
frame #13: 0x0000000108c2531c mono64`thread_func(thread_data=0x0000000108ec0108) at sgen-thread-pool.c:151 [opt]
frame #14: 0x00007fffb8276aab libsystem_pthread.dylib`_pthread_body + 180
frame #15: 0x00007fffb82769f7 libsystem_pthread.dylib`_pthread_start + 286
frame #16: 0x00007fffb8276221 libsystem_pthread.dylib`thread_start + 13
thread #3, name = 'Finalizer'
frame #0: 0x00007fffb818646e libsystem_kernel.dylib`semaphore_timedwait_trap + 10
frame #1: 0x0000000108ba5820 mono64`mono_coop_sem_timedwait [inlined] mono_os_sem_timedwait(timeout_ms=<unavailable>) at mono-os-semaphore.h:124 [opt]
frame #2: 0x0000000108ba5781 mono64`mono_coop_sem_timedwait(sem=0x0000000108d699b0, timeout_ms=<unavailable>, flags=<unavailable>) at mono-coop-semaphore.h:54 [opt]
frame #3: 0x0000000108ba6cb7 mono64`finalizer_thread(unused=<unavailable>) at gc.c:937 [opt]
frame #4: 0x0000000108b79c23 mono64`start_wrapper [inlined] start_wrapper_internal at threads.c:837 [opt]
frame #5: 0x0000000108b79af5 mono64`start_wrapper(data=<unavailable>) at threads.c:889 [opt]
frame #6: 0x0000000108c3ac21 mono64`inner_start_thread(data=<unavailable>) at mono-threads.c:1170 [opt]
frame #7: 0x00007fffb8276aab libsystem_pthread.dylib`_pthread_body + 180
frame #8: 0x00007fffb82769f7 libsystem_pthread.dylib`_pthread_start + 286
frame #9: 0x00007fffb8276221 libsystem_pthread.dylib`thread_start + 13
thread #4
frame #0: 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
frame #1: 0x00007fffb82767b5 libsystem_pthread.dylib`_pthread_wqthread + 1426
frame #2: 0x00007fffb8276211 libsystem_pthread.dylib`start_wqthread + 13
thread #5
frame #0: 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
frame #1: 0x00007fffb8276622 libsystem_pthread.dylib`_pthread_wqthread + 1023
frame #2: 0x00007fffb8276211 libsystem_pthread.dylib`start_wqthread + 13
thread #6
frame #0: 0x00007fffb818e4e6 libsystem_kernel.dylib`__workq_kernreturn + 10
frame #1: 0x00007fffb82767b5 libsystem_pthread.dylib`_pthread_wqthread + 1426
frame #2: 0x00007fffb8276211 libsystem_pthread.dylib`start_wqthread + 13
thread #7, name = 'Threadpool worker'
frame #0: 0x00007fffb818dcba libsystem_kernel.dylib`__psynch_mutexwait + 10
frame #1: 0x00007fffb8276f6a libsystem_pthread.dylib`_pthread_mutex_lock_wait + 100
frame #2: 0x0000000108bf108a mono64`sgen_gc_lock [inlined] mono_os_mutex_lock at mono-os-mutex.h:94 [opt]
frame #3: 0x0000000108bf107e mono64`sgen_gc_lock [inlined] mono_coop_mutex_lock(mutex=<unavailable>) at mono-coop-mutex.h:53 [opt]
frame #4: 0x0000000108bf1054 mono64`sgen_gc_lock at sgen-gc.c:3262 [opt]
frame #5: 0x0000000108bf1381 mono64`sgen_deregister_root(addr="\b\b\x01") at sgen-gc.c:2594 [opt]
frame #6: 0x0000000108b7281c mono64`mono_thread_detach_internal(thread=0x0000000108f4c508) at threads.c:1253 [opt]
frame #7: 0x0000000108b79d51 mono64`start_wrapper [inlined] start_wrapper_internal at threads.c:878 [opt]
frame #8: 0x0000000108b79af5 mono64`start_wrapper(data=<unavailable>) at threads.c:889 [opt]
frame #9: 0x0000000108c3ac21 mono64`inner_start_thread(data=<unavailable>) at mono-threads.c:1170 [opt]
frame #10: 0x00007fffb8276aab libsystem_pthread.dylib`_pthread_body + 180
frame #11: 0x00007fffb82769f7 libsystem_pthread.dylib`_pthread_start + 286
frame #12: 0x00007fffb8276221 libsystem_pthread.dylib`thread_start + 13
(lldb) detach
Process 56819 detached
(lldb) quit
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Abort trap: 6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment