Download

Live Coding warnings after VS Community 2019 update to version 16.10.1

Greetings everybody!

After recent Visual Studio update, Live Coding started showing weird (at least to me) warning messages.
The warnings are:

Registered process G:\Projects_UE4\UE4DevKit\Engine\Binaries\Win64\UE4Editor-Win64-DebugGame.exe (PID: 4036)

Loading module G:\Projects_UE4\Juggle\Binaries\Win64\UE4Editor-Juggle-Win64-DebugGame.dll (0.394 MB)

Non-unique symbol _volmd found in COFF file G:\Projects_UE4\Juggle\Intermediate\Build\Win64\UE4Editor\DebugGame\Juggle\GameResultWidget.cpp.obj. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)
Non-unique symbol _volmd found in COFF file G:\Projects_UE4\Juggle\Intermediate\Build\Win64\UE4Editor\DebugGame\Juggle\GameResultWidget.cpp.obj. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)

Non-unique symbol _volmd found in COFF file G:\Projects_UE4\Juggle\Intermediate\Build\Win64\UE4Editor\DebugGame\Juggle\GameResultWidget.cpp.obj. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)

Non-unique symbol _volmd found in COFF file G:\Projects_UE4\UE4DevKit\Engine\Intermediate\Build\Win64\UE4Editor\Development\Engine\SharedPCH.Engine.NonOptimized.ShadowErrors.h.obj. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)
Loaded 1 module(s) (0.000s, 24 translation units)
Live coding ready - Save changes and press Ctrl+Alt+F11 to re-compile code

Anyone knows how to “fix” this?

Thanks in advance.

Best regards!

2 Likes

Same issue here. Epic have made a fix in the UE5 branch, but nothing in UE4 yet AFAIK

https://github.com/EpicGames/UnrealEngine/commit/39b145baa5678067c20c4b9bba7e882c8f54ac78#diff-485472b49838dc6f0f0aea154b208a27a9024e5dd4c0ff48b7bc1f1d2900ef7a

3 Likes

It doesn’t work :frowning:
Is there any solution?

Um hello epic? This is a critical issue, live coding is now broken. Why is there nothing in the 4.27 branch and no hotfix for 4.26 yet? Fixing it for UE5 is completely useless.

Live coding still works just fine for me, though it has been annoying with those warning messages. Has been like that for two VS releases now.

hey @TheJamsh thanks for the link, looks like that should apply cleanly to the existing code, just offset by about 150 lines or so. . . . maybe not entirely cleanly, the newer version uses “objFile” as the file and the current version uses “file”. but, anyway, yeah, it applies, and works. and all it does is just prevent the warnings, so there isn’t any breakage in live coding without it, just an annoying several hundred warnings :slight_smile:

Once you apply this change, then rebuild Programs->LiveCodingConsole

1 Like

If you build the engine yourself you can adjust the fix to also work for UE4
in LC_Coff.cpp:1348 change
from

LC_WARNING_USER("Non-unique symbol %s found in COFF file %s. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)",
symbolName.c_str(), file->filename.c_str());

to

// BEGIN EPIC MOD - Import
// [CL 16621980 by Tim Smith in ue5-main branch]
// VS2019 seems to generate duplicate unwind and pdata block for the "dynamic atexit destructor" method (__F) under some conditions that I can't determine.
// Also, do not generate warnings for symbols in COMDATs
if (!coffDetail::IsComdatSection(section))
{
	if (!string::StartsWith(symbolName.c_str(), "$unwind$??__F") &&
		!string::StartsWith(symbolName.c_str(), "$pdata$??__F"))
	{
		LC_WARNING_USER("yeah yeah Non-unique symbol %s found in COFF file %s. Do not change the order of these variables while live coding, or consider upgrading to a newer compiler (VS 2015 or later)",
			symbolName.c_str(), file->filename.c_str());
	}
	else
	{
		LC_LOG_USER("Non-unique at-exit symbol %s found in COFF file %s. These sometimes appear in debug builds",
			symbolName.c_str(), file->filename.c_str());
	}
}

you will also need to build the LiveCodingConsole Project in the UE4 engine source
to get a new LiveCodingConsole.exe

WOW! thank you. i’ve never thought REBUILD LiveCodingConsole. and also thanks to inform UE4 use ‘file’ as local variable.

yeaaaah took me a while to realize LiveServer was built via LiveCodingConsole :smiley:

Is this a Visual Studio bug or an Unreal Engine bug? Does anyone know what version was the last good VS version before this started happening?

it looks like it’s just a pile of new messages from VS 16.10. 16.9 does not do it. The “fix” seems to be ignore them. I don’t know if that’s 100% correct, but it’s what Epic implemented, and it WFM. :smiley: