disclaimer: i’m vaguely understand this topic, but since it isn’t answered yet, i’ll provide some info i know. While i’m probably not 100% correct, it may be enough to start your own research.
Ultimately, that printing code need to know function names. Those names are stored in “debug symbols”(aka Debug Files or *.pdb
). Note that symbols can weight a few gigs, more than size of simple shipped applications.
Usually you’ll care about two types of symbols: engine ones and ones from your own application. There are more, like OS related, but i hadn’t need them during work with ue yet.
Engine:
If you using launcher version of engine, there is a checkbox in "advanced"s that will download all pdbs for your engine.
If it was custom build from sources, be it source build or installed build from AutomationTool.exe BuildGraph -target="Make Installed Build Win64"
- afaik by default pdb are generated and is not stripped off.
Your application:
In editor they should always be available. In packaged build, afaik, they(and engine ones) will be included with Development & DebugGame configurations. For Shipping there is an option in project settings Include DebugFiles in Shipping Builds
You have to put the corresponding PDB in the same directory as your exe (eg \Binaries\Win64.
thank you! it works!