In a production test environment, we tested the game without the debug symbol (pdb on windows). In this case, when it crashes, it has only the “program counters” in the log, something similar like:
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f9423bcd modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f94edc13 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f94e8282 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f95042bb modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f9503b4d modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f41dafb9 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f727a0f6 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f72824b9 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f728260a modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f7283490 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7f728bcd4 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7fad467a2 modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7fad466fe modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7fad465be modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff7fad4681e modulename!UnknownFunction
[2025.05.15-23.05.30:578][ 0]LogWindows: Error: [Callstack] 0x00007ff98dbc7374 KERNEL32.DLL!UnknownFunction
We have the corresponding debug symbols internally. But it is not shipped with the game. So the windows stack walker didn’t generate the human readable function names. And it didn’t provide the base addresses of the modules.
Sometimes we couldn’t get the dump files uploaded to our server, so we want to be able to re-construct the human readable callstacks from the above log. (and the internal debug symbols)
The re-construction requires module base address. So what I planned is to print the module base address to the log, using something similar to https://github.com/guffre/get\-base\-address/blob/master/getbaseaddr.c
Do you think there is a better way to achieve what we want ?
Thank you.