Debugging Engine Execute Path for Packaged Shipping Build

I am attempting to debug an issue I am having with nDisplay. When I package a Development build, and starting each node individually via command line, they successfully link and sync. But, when I package a Shipping build, nDisplay fails to engage, with no linking or syncing.

I am wanting to attach the debugger to an instance of our Unreal execution and step into the Unreal Engine to see if what calls it makes to see what is failing for the DisplayCluster module. But, every time I start up the debugger, I see the initial calls to invoke_main() calling WinMain(), but once it hits that point, there are no symbols loaded to see what calls are happening within the Unreal Engine.

I have a installed build and I have downloaded all the source files and symbols needed for this via Epic Launcher. When reading some documentation online, I see that some said that I should just click the exe file started and “Load Symbols” within the VS debugger. But, when I do this, nothing happens. When I review the list of dlls loaded, there are very, very few dlls loaded for the packaged shipping build, which is mainly our project’s dll and a few other dlls, that I guess, don’t get compiled into the exe via libraries.

Based upon this, I think that is why a packaged build can’t load symbols as the packaged build doesn’t need the symbols to execute the same compiled code as it is all compiled into the exe. As such, I am going to attempt to recompile the project as a modular project, which based upon documentation, this should bring out all the dlls individually, which should allow me to see the symbols loaded up.

But, I am asking, what is the correct way to make a packaged shipping build and be able to debug any/all code from the very beginning? Right now, I can only seem to debug our actual project files that we added in C++ but can’t debug any engine calls. I am hoping rebuilding the project as modular will be able to allow us to do this.

1 Like

nDisplay not working in shipping build (but works in Development) - Cinematics & Media / Virtual Production - Epic Developer Community Forums

The above forums post link contains how to get nDisplay to work correctly in a shipping build when running with/with-out Switchboard.

Basically the problem is that you can’t modify what game engine, network driver, ect classes Unreal will run via command line as these are dev only commands. Since Switchboard tells Unreal how to utilize nDisplay by changing the game engine/network driver/ect via command line, it will ignore these commands and start Unreal up utilizing the standard classes, thus never act like an nDisplay setup.

Also, if you use those same command line arguments via some type of .bat file or other way to execute your Shipping packaged game, you will run into the same issue.

The fix is to package the game with DefaultEngine.ini changes in that file so that the Shipping packaged project will just start with nDisplay changes by default or change your UserEngine.ini to change what classes Unreal with startup as at that executing point.