The callstack is being symbolicated via .sym, not .debug (.debug contains the debug information for gdb, while .sym contains a much more light-weight format for the runtime callstack symbolication). Make sure you have .sym right next to the server binary.
This is a workaround, not the proper course of action. Callstack symbolication works fairly reliable for us, so if it is not working for you we need to find the bug and fix it.
Interesting… Would you mind drilling a bit deeper into the problem?
Does the path to the server binary has spaces?
Does the .sym file have the appropriate permissions so the server can open it?
Are “MyGameServer-Linux-Shipping.sym” and “MyGameServer-Linux-Shipping” the actual names or just an example given? Particularly, if the file name for .sym contains more dots than just one (like "FooGameServer.MyGame.sym), it may not be found by the server.
Your callstack mentions MyGameServer module but the files you list are MyGameServer-Linux-Shipping. Would you mind checking that if you run MyGameServer binary, you also have MyGameServer.sym lying next to it?
Does the .sym file have the appropriate permissions so the server can open it?
- Yes, 755 with MyGameServer-Linux-Shipping and 644 with MyGameServer-Linux-Shipping.debug and MyGameServer-Linux-Shipping.sym.
Are “MyGameServer-Linux-Shipping.sym” and “MyGameServer-Linux-Shipping” the actual names or just an example given? Particularly, if the file name for .sym contains more dots than just one (like "FooGameServer.MyGame.sym), it may not be found by the server.
Names are ok, all files are generated by UAT batch script,don’t modify it,just move it from windows (win10, cross-compile env) to linux (centos 7).
Your callstack mentions MyGameServer module but the files you list are MyGameServer-Linux-Shipping. Would you mind checking that if you run MyGameServer binary, you also have MyGameServer.sym lying next to it?
not understand it. i only have MyGameServer-Linux-Shipping binary file in shipping package. do you mean make a development package?
Does the path to the server binary has
spaces?
Yes,has many free space.
I meant space character in the path, like /path/with a space/character. This is sometimes not handled properly.
Your callstack mentions MyGameServer module but the files you list are MyGameServer-Linux->>Shipping. Would you mind checking that if you run MyGameServer binary, you also have >>MyGameServer.sym lying next to it?
not understand it. i only have MyGameServer-Linux-Shipping binary file in shipping package. do >you mean make a development package?
The callstack that you pasted in the beginning of the post seems to be from MyGameServer binary, not MyGameServer-Linux-Shipping. See for example this line:
2、maybe a problem.
in the callstack do has binary name ArkGameServer
and binary-file name is MyGameServer-Linux-Shipping
i do some test,found the server process start in our "DS Watcher " process written by golang, use process.start with params that Name hardcode as “MyGameServer” with Path is Shipping Binary Path. cause my problem.
just change it to MyGameServer-Linux-Shipping fix it.