Skip to content
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

[Runtime Issue]: Debug windows build cannot start - missing ucrtbased.dll #509

Open
2 of 20 tasks
JeodC opened this issue Aug 2, 2024 · 7 comments
Open
2 of 20 tasks
Labels
bug Something isn't working

Comments

@JeodC
Copy link
Collaborator

JeodC commented Aug 2, 2024

Build Version

current

Operating System Environment

  • Microsoft Windows (32-bit)
  • Microsoft Windows (64-bit)
  • Mac OS X
  • Linux (specify distribution and version below)

CPU Environment

  • x86 (32-bit Intel/AMD)
  • x86_64 (64-bit Intel/AMD)
  • ARM (32-bit)
  • ARM64 (64-bit; sometimes called AArch64)
  • Other (RISC V, PPC...)

Game Modes Affected

  • Single player
  • Anarchy
  • Hyper-Anarchy
  • Robo-Anarchy
  • Team Anarchy
  • Capture the Flag
  • Bounty
  • Entropy
  • Hoard
  • Monsterball
  • Cooperative

Game Environment

No response

Description

On attempting to run the Windows x64 debug build, a message appears about a missing ucrtbased.dll file. This file is not packaged with the debug artifact.

Regression Status

No response

Steps to Reproduce

No response

@JeodC JeodC added the bug Something isn't working label Aug 2, 2024
@pzychotic
Copy link
Contributor

Working as intended I suppose, if you don't have VS or at least the Windows SDK installed.

The debug versions of the VC runtime libraries are not supposed to be redistributed.

See https://learn.microsoft.com/en-us/cpp/windows/preparing-a-test-machine-to-run-a-debug-executable?view=msvc-170:
Debug versions of an application aren't redistributable, and debug versions of the Visual C++ library DLLs are also not redistributable. You may deploy debug versions of applications and Visual C++ DLLs only to your other computers, for the sole purpose of debugging and testing the applications on a computer that doesn't have Visual Studio installed.

Or https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-170:
You also can't redistribute debug versions of your applications, or the debug versions of DLLs or libraries supplied by Microsoft. You may only copy debug executables and libraries to machines you use for testing.

@JeodC
Copy link
Collaborator Author

JeodC commented Aug 2, 2024

This hasn't been a thing for long, or I'm misremembering; I'm certain I was once able to run debug builds without vs installed. I've got no problem with it, but others might, especially for testing as it's one more gatekeeping obstacle. The change that led to the requirement needs to be documented probably.

@winterheart
Copy link
Collaborator

Probably we may to switch from full Debug build to RelWithDebInfo on artifact building (at least for Windows). That way we retain ability to get debug info from users and don't force them to install full MSVC environment for that.

@Lgt2x
Copy link
Member

Lgt2x commented Aug 12, 2024

With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build

@winterheart
Copy link
Collaborator

With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build

This feature not helped much with "new pilot - new game" crash (#523) :). Crash dump is stripped down and there no much info, and I forced to use extensive logging to hunt down issue.

@pzychotic
Copy link
Contributor

With #514 Windows Release can produce useful crashdumps without installing anything, so users can help identify crashes without using the Debug build

This feature not helped much with "new pilot - new game" crash (#523) :). Crash dump is stripped down and there no much info, and I forced to use extensive logging to hunt down issue.

Did you load the symbols from the PDB file?
I just reproduced that crash and can see the whole callstack, local variables and registers and stuff when running the crashdump.

@tophyr
Copy link
Contributor

tophyr commented Sep 2, 2024

Hmm. This is a bummer. I suppose it's a good forcing function to make us think hard about exactly what information we want from non-dev testers however.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants