I have a bit of a newbie question. I’m dealing with a weird issue in my project (5.4) where I occasionally get a Chaos crash in seemingly random places—usually a segmentation fault or access violation when reading ShapesData, Proxy, or something similar.
This makes me suspect that something is deleting the proxy (or whatever data format is in use at that moment), but since the crash happens on a different thread, the call stack isn’t helpful. Randomly adding logs to track deletions also seems like a nightmare.
What’s the best way to figure out what deleted an object that I had a proxy for? Could it be GC, a random Blueprint, or something related to streaming? The issue is so rare that I can’t just flood my code with logs and wait for it to happen.
(I could paste in a specific crash callstack, but it would be just a read error on a random part of the PBDResolver, or one of the header files).
It would depend on the nature of the error, and if its happening a particular project, or simply anyfresh project you start. If that is the case, I would suggest a full UE refresh:
First, uninstall the engine, launcher, asset packs, etc
Next, open the registry directory HKEY_CURRENT_USER\Software\Epic Games\Unreal Engine\Builds, and delete any build entries
Finally, delete the folders %userprofile%\AppData\Local\UnrealEngine and %userprofile%\AppData\Local\UnrealHeaderTool
After that, reinstall UE from scratch, all settings should be at default values
On the other hand, if the issue is isolated to a single project, then please include the full error logs, either from the crash window, or from AppData\Local\CrashReportClient\Saved\Logs
It is a project specific issue, but as I said the crash log or the callstack is different for every crash, no point to paste one here.
This question is more about a generic approach, how would you debug a crash that is a few frames behind of the actual cause, and on a different thread.