We are having an issue with our 64-bit Windows player crashing with no information in the log file and no crash dump information. I attached Visual Studio to the process prior to the crash an I was able to capture the following stack trace and exception, but the initial frames of the stack appear to be lost. I don’t know what I am looking at, but it kinda appears like it is a stack overflow in the garbage collection process that is causing the crash.
The game was built with Unity 2018.3.8f1
Exception captured by Visual Studio:
Exception thrown at 0x00007FFAEEAC3EF8 (mono-2.0-bdwgc.dll) in Game.exe: 0xC0000005: Access violation writing location 0x00000089BF4C0000. occurred
Call stack captured by Visual Studio:
mono-2.0-bdwgc.dll!__chkstk()
mono-2.0-bdwgc.dll!mono_method_to_ir(MonoCompile * cfg, _MonoMethod * method, MonoBasicBlock * start_bblock, MonoBasicBlock * end_bblock, MonoInst * return_var, MonoInst * * inline_args, unsigned int inline_offset, int is_virtual_call) Line 7186
at c:\buildslave\mono\build\mono\mini\method-to-ir.c(7186)
mono-2.0-bdwgc.dll!mini_method_compile(_MonoMethod * method=0x000001f803dfc470, unsigned int opts=303131135, _MonoDomain * domain=0x000001f83d462d20, JitFlags flags=JIT_FLAG_RUN_CCTORS, int parts=0, int aot_method_index=-1) Line 3441
at c:\buildslave\mono\build\mono\mini\mini.c(3441)
mono-2.0-bdwgc.dll!mono_jit_compile_method_inner(_MonoMethod * method=0x000001f803dfc470, _MonoDomain * target_domain=0x000001f83d462d20, int opt=303131135, _MonoError * error=0x00000089bf4c2a90) Line 4177
at c:\buildslave\mono\build\mono\mini\mini.c(4177)
mono-2.0-bdwgc.dll!mono_jit_compile_method_with_opt(_MonoMethod * method=0x000001f803dfc470, unsigned int opt=303131135, int jit_only=0, _MonoError * error=0x00000089bf4c2a90) Line 2133
at c:\buildslave\mono\build\mono\mini\mini-runtime.c(2133)
[Inline Frame] mono-2.0-bdwgc.dll!mono_jit_compile_method(_MonoMethod *) Line 2178
at c:\buildslave\mono\build\mono\mini\mini-runtime.c(2178)
mono-2.0-bdwgc.dll!mono_jit_runtime_invoke(_MonoMethod * method=0x000001f803dfc470, void * obj=0x000001f8a605f600, void * * params=0x00000089bf4c2a20, _MonoObject * * exc=0x0000000000000000, _MonoError * error=0x00000089bf4c2a90) Line 2690
at c:\buildslave\mono\build\mono\mini\mini-runtime.c(2690)
mono-2.0-bdwgc.dll!do_runtime_invoke(_MonoMethod * method=0x000001f803dfc470, void * obj=0x000001f8a605f600, void * * params=0x00000089bf4c2a20, _MonoObject * * exc=0x0000000000000000, _MonoError * error=0x00000089bf4c2a90) Line 2919
at c:\buildslave\mono\build\mono\metadata\object.c(2919)
[Inline Frame] mono-2.0-bdwgc.dll!mono_runtime_invoke_checked(_MonoMethod *) Line 3070
at c:\buildslave\mono\build\mono\metadata\object.c(3070)
mono-2.0-bdwgc.dll!create_unhandled_exception_eventargs(_MonoObject * exc=0x000001f83d472e10, _MonoError * error=0x00000089bf4c2a90) Line 4548
at c:\buildslave\mono\build\mono\metadata\object.c(4548)
mono-2.0-bdwgc.dll!call_unhandled_exception_delegate(_MonoDomain * domain=0x000001f83d462d20, _MonoObject * delegate=0x000001f83d482880, _MonoObject * exc=0x000001f83d472e10) Line 4588
at c:\buildslave\mono\build\mono\metadata\object.c(4588)
mono-2.0-bdwgc.dll!mono_unhandled_exception_checked(MonoObjectHandlePayload * exc=0x000001f839e8ca18, _MonoError * error=0x00000089bf4c2c20) Line 4713
at c:\buildslave\mono\build\mono\metadata\object.c(4713)
mono-2.0-bdwgc.dll!mono_unhandled_exception(_MonoObject * exc_raw=0x000001f83d472e10) Line 4656
at c:\buildslave\mono\build\mono\metadata\object.c(4656)
mono-2.0-bdwgc.dll!mono_handle_exception_internal(MonoContext * ctx=0x00000089bf4c3440, _MonoObject * obj=0x000001f83d472e10, int resume=0, _MonoJitInfo * * out_ji=0x0000000000000000) Line 2027
at c:\buildslave\mono\build\mono\mini\mini-exceptions.c(2027)
mono-2.0-bdwgc.dll!mono_arch_handle_exception(void * sigctx=0x00000089bf4c3900, void * obj=0x000001f83d472e10) Line 795
at c:\buildslave\mono\build\mono\mini\exceptions-amd64.c(795)
mono-2.0-bdwgc.dll!seh_vectored_exception_handler(_EXCEPTION_POINTERS * ep) Line 154
at c:\buildslave\mono\build\mono\mini\exceptions-amd64.c(154)
ntdll.dll!RtlpCallVectoredHandlers()
ntdll.dll!RtlDispatchException()
ntdll.dll!KiUserExceptionDispatch()
mono-2.0-bdwgc.dll!mono_class_array_element_size(_MonoClass * klass) Line 8779
at c:\buildslave\mono\build\mono\metadata\class.c(8779)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8a04c37e0, _LivenessState * state=0x000001f844c93c70) Line 336
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(336)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8a04d6000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8a04c6000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8a04ef000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
[I deleted about 12000 lines of identical looking call stack entries here]
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8821e3000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8821d0540, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f882200000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f8821ef000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
[Inline Frame] mono-2.0-bdwgc.dll!mono_traverse_generic_object(_MonoObject *) Line 182
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(182)
mono-2.0-bdwgc.dll!mono_traverse_objects(_LivenessState * state=0x000001f844c93c70) Line 304
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(304)
mono-2.0-bdwgc.dll!mono_traverse_array(_MonoArray * array=0x000001f88221e000, _LivenessState * state=0x000001f844c93c70) Line 349
at c:\buildslave\mono\build\mono\metadata\unity-liveness.c(349)
The maximum number of stack frames supported by Visual Studio has been exceeded.
1 Like
This bug will likely be fixed by Unity Issue Tracker - Editor silent crash when attempting to load a new Scene after allocating data
Generally due to large arrays (or collections based on arrays) leading to a stackoverflow during processing.
Thanks for the reply and the information! I’ll try upgrading to 2018.4 once that fix is released.