After updating to 4.6, crash on editor startup

Hi there,

I’ve just upgraded the engine to the latest version. I’ve made a series of changes (mainly changing signatures to new versions in the case of PCIP and GENERATE_UCLASS_BODY etc.) and was having some difficulties with my TMap object. Formerly it looked like this:

and now this:

I’ve changed it to a pointer because of some strange issue I was having, wherein Map.h reported an error something along the lines of it not having access to private member “UAbility::UAbility” (of which I have not even declared, and thus assume it comes from the generated body which must be private).

The reason I mention the TMap at all is because it would seem to be the only change I have made, aside from renaming, and now the entire project does crashes on load. It compiles fine, but upon loading the editor crashes around 40-50% through the initialize step; I can only provide the following information:

I appreciate that this may be vague but I would greatly appreciate any help. The project is rather large currently and I am unable to debug to discover the problem, as it crashes seemingly before hitting any breakpoints.

Any help would be highly appreciated!

I’ve changed it to a pointer because of some strange issue I was having

You are having issues because you are storing UObjects in a container by value. This is generally a Bad Thing to do, and I wouldn’t be surprised if the default constructor, copy and assignment operators are blocked on UObjects to prevent that.

As for the crash, it is likely happening in the modules initialization, where the native class CDOs are initialized. Is it possible that this ability map of yours is somehow being accessed and dereferenced during some native class’s constructor?

When having blueprints serialized with bad/outdated data, I’ve also had some luck in the past by deleting the DDC (DerivedDataCache folder). This forces lots of runtime cooked assets to be rebuilt, including blueprints that may be faulty.

Hey there, thanks for the comment. It’s a strange case, actually I originally had the map holding a string and a UAbility*, but it wouldn’t compile, hence changing it to a value type. This worked perfectly fine until 4.6, where I had to change to pointer to get it to compile (presumably due to the changes with GENERATED_BODY, but that’s really just a guess). Now begins the crashing.

None of what I’m doing involves blueprints, so we should be able to narrow it down a bit (the game is almost entirely C++, a few blueprints are used but are unrelated to the abilities). The map is referenced in a constructor, but I simply call .Empty .Reset on it (from memory - unsure if they’re named exactly that). Again, this worked fine before.

Any other ideas? I appreciate the post!

Just got home; attempted to remove any references to the map from constructors. Didn’t make any difference, still getting the crash on startup, 50% of the way through the “initialize” step. Anyone else getting similar crashes?

What if you remove the map altogether?

I’m still puzzled by the lack of debugger symbols on engine modules. Is it possible the engine was not fully rebuilt following your update? I always clear all intermediate files before building following an integration, just to be on the safe side.

" I always clear all intermediate files before building following an integration, just to be on the safe side."

that’s a great suggestion!

Just to be clear, you delete your intermediate folder, your .sln, .suo, and .sdf, then regenerate your VS files by right click on .uproject.

And if you remove all possible TMap stuff it would help us to know issue better, if it still crashes with no TMap involved