OpenTTD-patches/docs/symbol_server.md
Patric Stout 6e0f58f700
Codechange: [CI] use "cargo install --locked" to use pinned dependency versions (#12243)
Normally "cargo install" will use the latest dependencies, but
this causes an issue with "dump_syms". Use "--locked" makes sure
we use the dependency versions as indicated by "dump_syms", instead
of the latest version.
2024-03-09 11:42:09 +00:00

1.3 KiB

OpenTTD's Symbol Server

For all official releases, OpenTTD collects the Breakpad Symbols (SYM-files) and Microsoft's Symbols (PDB-files), and publishes them on our own Symbol Server (https://symbols.openttd.org).

These symbol files are needed to analyze crash.dmp files as attached to issues by users. A crash.dmp is created on Windows, Linux, and MacOS when a crash happens. This combined with the crash.log should give a pretty good indication what was going on at the moment the game crashed.

Analyzing a crash.dmp

MSVC

In MSVC you can add the above URL as Symbol Server (and please enable MSVC's for all other libraries), allowing you to analyze crash.dmp.

Now simply open up the crash.dmp, and start debugging.

All other platforms

The best tool to use is minidump-stackwalk as published in the Rust's cargo index:

cargo install --locked minidump-stackwalk

For how to install Rust, please see here.

Now run the tool like:

minidump-stackwalk <crash.dmp> --symbols-url https://symbols.openttd.org

For convenience, the above Symbol Server also check with Mozilla's Symbol Server in case any other library but OpenTTD is requested. This means files like libc, kernel32.dll, etc are all available on the above mentioned Symbol Server.