Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

mono.dll caused an Access Violation CRASH

Discussion in 'Windows' started by Fuzzypup, Jan 24, 2020.

  1. Fuzzypup

    Fuzzypup

    Joined:
    Aug 13, 2013
    Posts:
    190
    The players using my game have encountered a rare error that skips over code and changes the parameters of the game. Usually when this happens with other crash dumps the game just crashes. But in this specific case it keeps the game going incorrectly.

    I uploaded the crash.dmp and error.log.

    I am using the 2017 Unity personal version with the most recent update in Jan of 2020.
     

    Attached Files:

  2. Fuzzypup

    Fuzzypup

    Joined:
    Aug 13, 2013
    Posts:
    190
    Update. My player was using 2018 v.27 update not the latest.
    Hopefully the latest version will clear this up.
     
  3. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,646
    Here's the full callstack of the crash:

    Code (csharp):
    1. mono.dll!mono_traverse_object_internal(MonoObject * object, int isStruct, _MonoClass * klass, _LivenessState * state)
    2. mono.dll!mono_traverse_objects(_LivenessState * state)
    3. mono.dll!mono_traverse_array(MonoArray * array, _LivenessState * state)
    4. mono.dll!mono_traverse_objects(_LivenessState * state)
    5. mono.dll!mono_traverse_array(MonoArray * array, _LivenessState * state)
    6. mono.dll!mono_traverse_objects(_LivenessState * state)
    7. mono.dll!mono_traverse_array(MonoArray * array, _LivenessState * state)
    8. mono.dll!mono_traverse_objects(_LivenessState * state)
    9. mono.dll!mono_unity_liveness_calculation_from_statics(_LivenessState * liveness_state)
    10. UnityPlayer.dll!MarkManagedStaticVariableRoots(GarbageCollectorThreadState &)
    11. UnityPlayer.dll!GarbageCollectSharedAssets(bool monoReferences)
    12. UnityPlayer.dll!UnloadUnusedAssetsOperation::IntegrateMainThread()
    13. UnityPlayer.dll!PreloadManager::UpdatePreloadingSingleStep(PreloadManager::UpdatePreloadingFlags flags, int timeSliceMs)
    14. UnityPlayer.dll!PreloadManager::WaitForAllAsyncOperationsToComplete()
    15. UnityPlayer.dll!PreloadManager::UpdatePreloading()
    16. UnityPlayer.dll!PlayerLoop()
    17. UnityPlayer.dll!PerformMainLoop()
    18. UnityPlayer.dll!MainMessageLoop()
    19. UnityPlayer.dll!UnityMainImpl(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, wchar_t * szCmdLine, int nCmdShow)
    20. UnityPlayer.dll!UnityMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, wchar_t * szCmdLine, int nCmdShow)
    This indicates a corrupted heap, but I can't really tell you which object is causing the crash without having a full crash dump (which can be captured using full dump type with this technique: https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps).
     
  4. Fuzzypup

    Fuzzypup

    Joined:
    Aug 13, 2013
    Posts:
    190
    Thanks. At least it gives me an idea of where to look since I assume it is one of my objects that I created.