-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error CS0042: Unexpected error creating debug information file 'c:\UnrealEngine\Engine\Intermediate\Build\BuildRules\UE4Rules.PDB' #146
Comments
We use Also, #99 (comment) saw the same failure when building with So another theory: This is actually similar to #141 (comment), and normally UE4Build.dll is generated during the engine build, before the PDBs are truncated by I suspect that we shouldn't be truncating C# PDBs with |
So... I am observing exactly the same behavior using stock ue4-docker 0.0.81. It means that my changes in #144 are actually unrelated. It also means that ue4-docker cannot currently produce a working 4.26 engine on Windows. Or I don't know a way how to achieve it. |
Why f3f5fbb talks about 'to prevent manifest errors' though it isn't clear what that means. |
#99 (comment) explains the PDB-truncation rationale.
The EGL version still builds the PDBs, but leaves them out later. It might still be possible to work out how to make the BuildGraph script for Installed Builds able to manage excluding PDBs (or even not build them), if that turns to be necessary. It might also be that the deletion problem related to C# PDBs, not C++ PDBs, in which case the same fix I suggested before (don't mess with the C# PDBs during truncation) would apply, and might allow changing back to deletion. |
I don't understand that. At what stage BuildGraph scripts are used after PDBs were deleted? We've already built the engine and produced installed build. |
This commit fixes 'error CS0045: Unexpected error creating debug information file' that occurs when UE4 builds Engine/Intermediate/Build/BuildRules/UE4Rules.dll on Windows
See #149. |
This commit fixes 'error CS0045: Unexpected error creating debug information file' that occurs when UE4 builds Engine/Intermediate/Build/BuildRules/UE4Rules.dll on Windows
This issue also affects 4.25. 4.23/4.24 are not affected. |
Interesting observation: I didn't hit this bug on 4.25 + 2019 LTSC. Possibly @TBBle's analysis is correct and there's a timestamp issue between DLL/PDB. |
If that's correct, and for some reason we don't go with #149 anyway, perhaps we can find a way to truncate the PDBs without changing their timestamp metadata. I still think that overall, we should not be touching C# PDBs in the first place, as they are not large, and unlike C++ PDBs, are (apparently) involved in the build/linking process of the DLL consumers. Although I expect that removing them rather than truncating them is still better. |
Interesting info. This is a list of
I like your suggestion to "only strip C++ PDBs" more and more. |
A lot of those PDBs still there are C++ as well; anything in Engine/Plugins for sure will be C++. As it turns out, I have a 4.26.1 install with PDBs excluded here too, so I can look at the same thing you're looking at. I suspect all it's trying to exclude are the PDBs for the Editor and its plugins, not for the Programs or anything with I wonder if this system is actually in the code-base somewhere? Perhaps it's using specific .target files, e.g. The way to confirm this would be to install the PDBs, compare the list, and if it matches the list of |
I'm not aware whether PDB-exclusion logic is available in UE4 sources anywhere. |
Well, if I'm right and it's just excluding things based on UE4Editor.target, then that logic would be near-trivial to implement, even if we can't see the Epic implementation. |
To follow-up on my first comment, it turns out we hadn't deployed the Windows images to our CI after all. A freshly-built 4.26.1 image on LTSC2019 replicates this issue. |
I can't remember which PDB files caused errors when they were removed (i.e. whether they were C++ or C# debug symbols), but I do know that when I attempted to build or package projects in a container image that didn't have them, UnrealBuildTool complained about them being missing despite being listed in a manifest file somewhere. In any case, the truncation hack was always fundamentally a workaround for the fact that I couldn't figure out how PDB files are excluded from Installed Builds distributed through the Epic Games Launcher. If removing the PDB files listed in the Engine's top-level |
This commit fixes 'error CS0045: Unexpected error creating debug information file' that occurs when UE4 builds Engine/Intermediate/Build/BuildRules/UE4Rules.dll on Windows
This commit fixes 'error CS0045: Unexpected error creating debug information file' that occurs when UE4 builds Engine/Intermediate/Build/BuildRules/UE4Rules.dll on Windows
This commit fixes 'error CS0045: Unexpected error creating debug information file' that occurs when UE4 builds Engine/Intermediate/Build/BuildRules/UE4Rules.dll on Windows
Output of the
ue4-docker info
command:Additional details:
I am actually running a modified version ofThis is ruled out, stock ue4-docker 0.0.81 produces exactly the same behavior.ue4-docker
(see #144) but I think this issue is not related to my changes.There is an independent report about the same issue with
4.25.3
: #99 (comment) by @Agendum.Way to reproduce
ue4-docker build 4.26.1 --no-engine --exclude ddc --exclude templates --exclude debug
ue4-docker test 4.26.1
Expected
ue4-docker test
passesActual
I'm currently rerunning vanilla
ue4-docker
without my changes, but highly suspect that I will hit exactly the same error.Additional thoughts
This might be caused by
--exclude debug
. Has anyone successfully passedue4-docker test
using an engine build with--exclude debug
? Omiting--exclude debug
is not an option for 4.26.1 because you'll hit #99. If this assumption is true, it would mean that--exclude debug
is unusable and needs fixes.The text was updated successfully, but these errors were encountered: