Skip to end of metadata
Go to start of metadata

Introduction

When a game (or application) crashes, the developers usually have a hard time trying to figure out what caused the crash. There are dozens of different reasons for a program to crash. It can be a bug in the game/application itself (f.e. trying to dereference an invalid memory address, failing to handle an exception which occurred, running into undefined behavior which ultimately ends up in trying to allocate too many resources (like memory), etc.), a bug in a 3rd-party program/tool which is either used by the game or hooks itself into the game to perform its own functionality (like improving graphical effects or recording the video/audio to be able to stream it), hardware failures causing undefined behavior in the application or on the OS layer, and countless of other possibilities.

The outcome for the player however, is always the same: The game/application just crashed and the user ended up on the Desktop.

So while all crashes basically appear the same way to the player, they are actually completely different things from a developer's point of view. The problem for the developer is to figure out what the cause of a crash was, while the users can't tell them apart from their side.

One way to handle this, is to collect relevant application details, when the crash occurred. These packages are called crash dumps.

The dumps contain useful information (like most recent callstack and stack memory information, the modules (aka: DLLs) running on the machine, some basic information about the OS and the machine/environment the crash occurred on, etc.). This is a good start for the developer to tell different crashes apart and usually by itself is good enough a hint to identify (and if possible fix) the cause of the crash.

Crash dumps in X4 Foundations and redirect pages

In X4 Foundations we generally generate so called mini dumps instead of full dumps. Mini dumps only contain the essential information about a crash and only the stack data. They do not contain a full memory dump of the heap the game uses. By default when a crash occurs information about the exact location in the engine the crash occurred in is sent to a server. The server looks up the details and checks if the crash is already known and whether additional details (the troubleshooting pages) are available. If so, the browser will open the corresponding troubleshooting page pointing out further information about the crash (like potentially identified workarounds, status updates on the state of the crash investigation, step-by-step-instructions for the user to resolve the issue itself (if it's an issue outside the game like a driver installation issue on the local machine), etc.).

In addition to that, the crash dump and some other related information (like the memory consumption of the game at the time the crash occurred, the list of installed and active mods, the last few errors in the log, etc.) are uploaded to the server so it's available for the developers to investigate the cause of the crash in detail.

If you don't want the crash details to be uploaded to the server at all, you can opt out of this functionality in game through the Options Menu -> Settings -> Privacy Settings and set Send crash reports to NO.

Please be aware that if this is disabled, you also won't be redirected to the troubleshooting pages anymore.

Privacy Policy and crash reports

We do not intentionally include any personal details by default when crash reports are sent to us. While it cannot be ruled out entirely that crash details don't include any personal information (f.e. if it ends up on the stack data which is part of the crashdump), chances of this happening are very slim (as the game usually stores personalized data (for the online functionality) only in encrypted ways and hence they also would be encrypted, if they happen to end up on the sent stack data).

That however also means that we won't be able to tell which user ran into a particular crash we have on record on the servers.

In certain cases this can be problematic, if we need to get in touch to further troubleshoot a crash with affected users. If such a case happens, we might ask individual users who contacted us about a crash to enable personalized crash reports. If this setting is enabled (Options Menu -> Settings -> Privacy Settings -> Personalised crash reports), it assigns a unique identifier to crash reports coming from this user which allows us to identify this user's crash reports on our server.

Be aware that enabling this setting is really just useful, if you've been asked by support to do so. Enabling it yourself without an investigation of a particular crash being in progress, the added data is of little use to us. Also be aware that while the identifier is personalized, we do not have means to identify the user directly just through the identifier alone.

Locating local crash reports

Regardless of whether you selected to send crash reports automatically to the server or not, the crash dump is also stored locally on your machine. The game stores the dump file alongside the location of the game executable (X4.exe) and names the files in the following format:
X4_[VERSIONNUMBER]_[TIMESTAMP].dmp
(Sidenote: Before 3.20 the name contained an 'r' after X4_ - as of 3.20 the filename was changed and the 'r' was dropped.)

For instance, for a crash happening with version 3.10 of the game at 15:10:20 on 2020-03-23, the corresponding dump file the game creates would be: X4_310_2020_03_23_15_10_20.dmp.

Local crash files have primarily the purpose for the support team to be able to ask users for these files, if they are investigating a particular crash and the user was not redirected to a corresponding troubleshooting page or if he was redirected to the page, but the crash dump details would be of additional use to the developers, regardless.

Locating the particular path the crash dump file is located is quite easy.

Steam

  1. In Steam go to LIBRARY (1), right click X4: Foundations (2) and click on Properties... (3)
  2. In the "X4: Foundations - Properties" window click on LOCAL FILES (1) and then on BROWSE LOCAL FILES... (2)

This should bring up the Windows Explorer window in the folder where the X4.exe (and the dump files) reside.

GOG

In the GOG Galaxy client select X4: Foundations (1), click on MORE (2), select Manage installation (3), and finally click on Show folder (4).

This should bring up the Windows Explorer window in the folder where the X4.exe (and the dump files) reside.

Write a comment…