EasySave3 (latest version) crashes a Windows Unity build whenever it tries to load data.
I have 2 Steam builds for my Unity game (with 2 separate Steam app IDs - one for release, and one app for pre-release alpha version). I accidentally pushed a build to the alpha app using the name of the main app in Unity build settings, and ever since EasySave3 crashes either build when ES3.Load is called.
I have fixed the naming issue so they are two separate programs in my Steam library, however I believe the reference EasySave is using for the save file is causing the crash. I have deleted the SaveFile.es3 in AppData for both apps, but that didn't fix it.
I have narrowed it down to the ES3.Load function - the game can save as normal, however can't load that saved data without crashing the Unity build.
There are no EasySave logs in the Player Log or Crash Log.
Any suggestions?
EasySave3 Crash On ES3.Load
Re: EasySave3 Crash On ES3.Load
Hi there, and thanks for getting in contact.
If Easy Save encounters an issue it will log an exception to console, and unfortunately it wouldn't be possible for me to understand what is happening without seeing this.
I would first check that Log Errors and Log Warnings is checked in Window > Easy Save 3 > Settings, and that 'Script call optimization' in Unity's build settings is not set to 'Fast but no exceptions'.
Also consider that in the process of loading data, you are creating and assigning to objects which could also themselves throw an error, so it might be worth looking into that when debugging your project.
Hope this helps.
All the best,
Joel
If Easy Save encounters an issue it will log an exception to console, and unfortunately it wouldn't be possible for me to understand what is happening without seeing this.
I would first check that Log Errors and Log Warnings is checked in Window > Easy Save 3 > Settings, and that 'Script call optimization' in Unity's build settings is not set to 'Fast but no exceptions'.
Also consider that in the process of loading data, you are creating and assigning to objects which could also themselves throw an error, so it might be worth looking into that when debugging your project.
By default Easy Save stores data in Unity's Application.persistentDataPath, so the save path isn't controlled at our end. You can find more information on Application.persistentDataPath here: https://docs.unity3d.com/ScriptReferenc ... aPath.htmlI have fixed the naming issue so they are two separate programs in my Steam library, however I believe the reference EasySave is using for the save file is causing the crash. I have deleted the SaveFile.es3 in AppData for both apps, but that didn't fix it.
Hope this helps.
All the best,
Joel
-
- Posts: 2
- Joined: Thu Aug 20, 2020 9:38 pm
Re: EasySave3 Crash On ES3.Load
Hi Joel,
Thanks for coming back to me so quickly. Log Errors and Log Warnings are both enabled in EasySave, but there are no ES3 related warnings in the player log or crash log.
I dug into Unity's crash log, and it seems ES3.Load is causing an access violation (log below). ES3.Save can save a file to the correct location in the persistent data path (I checked and the SaveFile.es3 file appears when saving), but when it tries to load from that file the below crash occurs.
Searching online it seems that this might be an issue with Citrix (which I don't have), or the computer's Registry (more likely, having installed 2 apps in the same location). I deleted the registry folder for the game, but am still experiencing the EasySave crash. Could it be something else?
Does this help troubleshoot at all?
Thanks for coming back to me so quickly. Log Errors and Log Warnings are both enabled in EasySave, but there are no ES3 related warnings in the player log or crash log.
I dug into Unity's crash log, and it seems ES3.Load is causing an access violation (log below). ES3.Save can save a file to the correct location in the persistent data path (I checked and the SaveFile.es3 file appears when saving), but when it tries to load from that file the below crash occurs.
Searching online it seems that this might be an issue with Citrix (which I don't have), or the computer's Registry (more likely, having installed 2 apps in the same location). I deleted the registry folder for the game, but am still experiencing the EasySave crash. Could it be something else?
Does this help troubleshoot at all?
Code: Select all
This Means Warp Alpha by Outlier [version: Unity 2019.3.14f1_2b330bf6d2d8]
UnityPlayer.dll caused an Access Violation (0xc0000005)
in module UnityPlayer.dll at 0033:3eb4b430.
Error occurred at 2020-08-21_084934.
C:\Users\paulm\Desktop\Steam SDK (Alpha)\sdk\tools\ContentBuilder\content\This Means Warp Alpha.exe, run by paulm.
Read from location 0000000000000000 caused an access violation.
Context:
RDI: 0x0000000000000000 RSI: 0x0000023a80220b80 RAX: 0x0000023a400c60bc
RBX: 0x000000d0d4f0e180 RCX: 0x0000000000000000 RDX: 0x000000d0d4f0e120
RIP: 0x00007ffd3eb4b430 RBP: 0x000000d0d4f0e190 SegCs: 0x000000d000000033
EFlags: 0x0000000000010246 RSP: 0x000000d0d4f0e090 SegSs: 0x000000d00000002b
R8: 0x00007ffd3fb713e0 R9: 0x000001696b1b7fe4 R10: 0x0000000000000000
R11: 0x000000d0d4f0e088 R12: 0x0000000000000000 R13: 0x0000023a80220810
R14: 0x0000023a80220730 R15: 0x0000023a80220730
Bytes at CS:EIP:
48 8b 01 ff 50 40 8b 55 94 48 8b ce e8 ff d0 ff
Mono DLL loaded successfully at 'C:\Users\paulm\Desktop\Steam SDK (Alpha)\sdk\tools\ContentBuilder\content\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll'.
Stack Trace of Crashed Thread 17192:
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB4B430)
0x00007FFD3EB4B430 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB5F308)
0x00007FFD3EB5F308 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EB4D9FB)
0x00007FFD3EB4D9FB (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBFCE25)
0x00007FFD3EBFCE25 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03B2D)
0x00007FFD3EC03B2D (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03C08)
0x00007FFD3EC03C08 (UnityPlayer) (function-name not available)
0x00007FFD3EF24668 (UnityPlayer) UnityMain
0x00007FFDB0117BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFDB112CE51 (ntdll) RtlUserThreadStart
Stacks for Running Threads:
Call Stack for Thread 15580:
0x00007FFDB115C0F4 (ntdll) NtWaitForSingleObject
0x00007FFDAECD8A83 (KERNELBASE) WaitForSingleObjectEx
0x00007FFD3F57C3E2 (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC03EE7)
0x00007FFD3EC03EE7 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBF635D)
0x00007FFD3EBF635D (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EBE0313)
0x00007FFD3EBE0313 (UnityPlayer) (function-name not available)
0x00007FFD3EE8BAA2 (UnityPlayer) UnityMain
0x00007FFD3EE7D427 (UnityPlayer) UnityMain
0x00007FFD3EE7D4C3 (UnityPlayer) UnityMain
0x00007FFD3EE7F8C3 (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC38FFE)
0x00007FFD3EC38FFE (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC37D5A)
0x00007FFD3EC37D5A (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFD3EC3BCCC)
0x00007FFD3EC3BCCC (UnityPlayer) (function-name not available)
0x00007FFD3EC3F7BB (UnityPlayer) UnityMain
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FF7DAD611F2)
0x00007FF7DAD611F2 (This Means Warp Alpha) (function-name not available)
0x00007FFDB0117BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFDB112CE51 (ntdll) RtlUserThreadStart
Re: EasySave3 Crash On ES3.Load
Hi there,
This looks to be an internal Unity crash happening in unmanaged space rather than at our end, so it might be worth getting in touch with them as only they're able to debug internal crashes.
Just to check, are you using multiple threads at all? It may be that thread safety is being violated.
All the best,
Joel
This looks to be an internal Unity crash happening in unmanaged space rather than at our end, so it might be worth getting in touch with them as only they're able to debug internal crashes.
Just to check, are you using multiple threads at all? It may be that thread safety is being violated.
All the best,
Joel