Unreal Engine 4.25 released!

Some questions about using debug symbols when use Engine from Source:

  1. When using UE4 compiled from source, **where **do I have to set VS Solution Configuration to "debug " to get debug symbols? Do I have to open the “UE4.sln” from Editor-Source Folder and set Configuration to " debug" and then compile or do I have to open my projectname.sln in my project folder and set “debug *” there?

  2. What VS Solution Configuration do I have have debug symbols for** game and editor**? (I guess the one called "DebugGame Editor"or to “Debug”)?

  3. I am a bit confused about having my “UE4.sln” in source files and my “projectname.sln” on my project files. Of course I know what they are for in general. But what happens when I would set “UE4.sln” to “**Debug **Editor” and after that set my “projectname.sln” to “**Development **Editor” and compile again. What is used then when both are set different?

  4. When I build/cook my game in project-settings** package-settings** I can set target (called build configuration here) again (Debug, DebugGame, Development, Shipping…). I guess when I set target “Development” or “Shipping” here - then what I set before in my projectfiles *.sln and/or UE4.sln is ignored and on build/cook its build without Debug symbols as “Development” or “Shipping” right? (So, it will compiles everything a second time?)

I tried to google/search forums for it but did not get the answers explained in detail. Thanks a lot!

You don’t need ever care about UE4.sln since you have your own project’s solution. This “MyProject.sln” already includes the entire engine. Think about UE4.sln as “few hundreds/thousands more” game modules :wink:

If you compiled it locally, you’ll get PDB files in any build configuration. Just check Binaries folder of your project. If you see PDB files there, you have debug symbols. This kind of file you’d download via the launcher when choosing “debugging symbols” option.

The difference is what these symbols included + what engine adds.
In Debug, you’d able to read all the values, but it’s the execution of the program is noticeably slower. I’m sometimes tempted to switch into Debug, but most of the time Development configuration it’s enough for me - reading most of the symbols and simply analyzing the code.

In Development engine by default adds logging, checks - we can easily debug things.
Shipping is stripped away from any debug functions and data possible - to avoid slowing down the game and crashes casued by some checks.

Thanks Moth Doctor, as I understand the way to go is, compile UE4.sln every time in “Development Editor” Mode. Then Compile Project sln in “Debug” Mode for full debug symbols. Or compile it in “Development” Mode for some (mostly enough) debug symbols. Right?
And by understanding that now, I assume when switching project-settings package-settings to other settings and build/cook with these other settings like “shipping”, that they are totally independent from project sln settings and simply compile again and take the binaries compiled again on build/cook.
Thanks a lot!

Basically, forget that UE4.sln exists. Needed engine modules gonna be compiled before compiling project modules while your normally build your game code. It’s because project modules depends on engine modules.
Obviously, the engine’s code usually doesn’t get changed, so engine compilation doesn’t trigger every single time :wink:

Exactly :slight_smile:

So loading a map while debugging in VS also leads to the same crash in WidgetBlueprint.cpp (read access violation on line 969 “Graph was nullprt”)

I did try building 4.25.3 from source but then ran into a wall when it came to trying to get all of the plugins my project relies on into the build.

I’ll just keep prodding around the project to see if I can pindown the source offending widget while I wait to see if anyone else is having the same problems.

Thanks for your help!

We do not know if it’s indeed a widget. So far you are the only one.

Next debug steps I would take

Deactivate all plugins.
Move project folder out of the project one by one, until it loads again. If it loads with a certain folder missing, move it back then begin moving content from this folder out of the project. Also fix up redirectors, validate assets, and perhaps there are corrupt files inside your project. Look for any log file errors and warnings which may offer pointers.

@Hardy:
Yes, I would recommend the same. Or… do it the other way around. So you know, it has a clean start.

  • Blank project which should start fine
  • Add folders to your “corrupt” project to the clean one. Being aware of the error message, I wold start with Widgets, to pinpoint “corrupted” file early
  • try to pin point an exact file which produces the error
  • then open that file in a earlier version of UE4 where it is not crashing. You should see an error. If you do not see any warning and find no “problem” manually, try to migrate the file one time in another project (an then back?). Or do “Asset action” -> “reload” one time in the same project.

Edit: When you have debug symbols on, and you get the error in log… what is directly above the error. I also had an error one time which did not stated directly the problematic file, but the log part directly above of the error (in UE4 LOg, not only the small part of crash report) told me where it was wrong and what file lead to the error.

@Moth Doctor: Thanks a lot again!

Thanks for the pointer. The log shows that a lot of my blueprints seem to have references to macros that are failing. Here is a snippet of the events that immediately preceed the crash.


[2020.10.26-19.07.59:164][370]LogBlueprint: Error: [Compiler W_World_RaidersBattleAssistanceScreen] Macro node Macro instance is pointing at an invalid macro graph.
[2020.10.26-19.07.59:168][370]LogBlueprint: Warning: [Compiler W_World_RaidersBattleAssistanceScreen] Macro instance was pruned because its Exec pin is not connected, the connected value is not available and will instead be read as default
[2020.10.26-19.07.59:237][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] In use pin Source String no longer exists on node Macro instance . Please refresh node or break links to remove pin.
[2020.10.26-19.07.59:237][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] In use pin Return Value no longer exists on node Macro instance . Please refresh node or break links to remove pin.
[2020.10.26-19.07.59:237][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] Macro node Macro instance is pointing at an invalid macro graph.
[2020.10.26-19.07.59:237][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] In use pin Source String no longer exists on node Macro instance . Please refresh node or break links to remove pin.
[2020.10.26-19.07.59:238][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] In use pin Return Value no longer exists on node Macro instance . Please refresh node or break links to remove pin.
[2020.10.26-19.07.59:238][370]LogBlueprint: Error: [Compiler W_World_TerminalScreen] Macro node Macro instance is pointing at an invalid macro graph.
[2020.10.26-19.07.59:316][370]LogBlueprint: Warning: [Compiler W_World_TerminalScreen] Macro instance was pruned because its Exec pin is not connected, the connected value is not available and will instead be read as default
[2020.10.26-19.07.59:316][370]LogBlueprint: Warning: [Compiler W_World_TerminalScreen] Macro instance was pruned because its Exec pin is not connected, the connected value is not available and will instead be read as default
[2020.10.26-19.09.03:759][370]LogWindows: Error: === Critical error: ===
[2020.10.26-19.09.03:759][370]LogWindows: Error:
[2020.10.26-19.09.03:759][370]LogWindows: Error: Fatal error!
[2020.10.26-19.09.03:759][370]LogWindows: Error:
[2020.10.26-19.09.03:759][370]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000038

The language I find interesting here are the entries that state “invalid macro graph” which seems to tie into the information I get from Visual Studio when debugging the crash. It states that a Read Access Violtion occurs in regards to the enum ‘Graph’ which it sees as a nullptr. The bad news is that doesn’t really give me any clues as to the cause. In the meantime I’m going to have to try moving folders into a clean project individually like you suggested.

If anyone is able to connect any of these dots while I try to work it out please do share.

I tried dragging some suspected offenders into a clean project and I believe I found a/the culprit blueprint. It seems to be my GameInstance blueprint, which explains why so many other files crash too when opened since a lot of them depend on GameInstance in some form. The only information I have to go by at the moment however is the following error: "Serialization Error: Action Needed - Corrupt data found, please verify your installation (which I of course have tried)
The editor then crashes and reveals this error in the crash log


Assertion failed: false [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp] [Line: 4838]

I still don’t really understand how it is considered to be corrupt since the same object worked fine in 4.25.3 but I’m researching this new info anyway.

Okay, create another GameInstance inside a clean project under the same folder structure, name it like the corrupted, then copy it over the corrupted (before you made a backup ofc). Perhaps now you can load the maps again?

Corruption can go unnoticed, Unreal Engine upgrades trigger corruption, since they usually evaluate file serialization anew. The question here is why you have a serialization error. At least it suggests that your SSD or harddrive is faulty. There could be more affected files in your project, which will be made noticeable inside the output log with things like unexpected bytes warnings.

If you downloaded the UE4 pdbs thru the launcher, you will get to know the name of the offending objects (including blueprints) by launching the project via Visual Studio (or attaching to to existing UE4 instance). Once the culprit has been found, you can simply moved them out of the project folder one bye one the project succesfully launched. And then just recreate the blueprint within the editor - that should solve your problem.

I have done exactly this. The problem was shown to be a read access violation in WidgetBlueprint.cpp.
Screenshot
Since that is an Unreal Engine file I am unsure as to how it ties into my project specifically.

Fortunately, the devs have noticed the issues in another thread and mentioned that they are looking into it, so perhaps I will get some answers soon. Thanks!

Have you filed official bug report? It would go much faster if you did.

Tried this. Even with a clean GameInstance in place it crashes. Even if I just right click the thing. Quite bizarre. Was worth a shot though :slight_smile:

The only errors I get in the Output Log are a bunch of errors regarding ‘Macro node Macro instance is pointing at an invalid macro graph’. From what I can tell these are coming from most of the Blueprint that are crashing the engine. The debug error I got in WidgetBlueprint.cpp in Visual Studio also mentions that ‘Graph’ is nullptr, which seems to suggest the problem relates somehow to that. It is a bit above my experience level at this time to know how these things are related but I am continuing to research it.

I have filed two (the latter holding more information I learnt regarding the crash with the help of you guys here in the forums). I have read that those can sometimes take a while to be seen but hopefully there are other people submitting similar reports.

So are people generally feeling good about 4.25 now? I finally updated my project from 4.22 expecting a ton of problems, and I haven’t had a single issue that wasn’t quickly fixable… I guess I won the dice roll lol

It seems that your issue has been fixed in 4.26… :wink:

I saw :slight_smile:
It is a shame that the fix isn’t going to be implemented into 4.25, since I rely on a few plugins that of course will take some time to be updated to 4.26, but it is certainly better than losing a months worth of progress (I went back through my backups to see if any of them worked and the latest working backup I could find was from a month back, which is a lot of work when you work on a project for 4+~ hours per day)
I’m just glad that I will eventually be able to get back to working on the game at some point. I have learnt a lesson at least; never, ever, ever update, especially if everything is working fine.

It’s odd as they usually provide a link to the commit. Doesn’t seem to be the case here.

I got the same issue when upgrading to 4.25.4.
Just tried with 4.26 preview 6 is the issue seems to be fixed. When is the official release of 4.26?