Sven Co-op

Sven Co-op

Not enough ratings
How to produce a memory/crash dump for debugging (Windows only)
By Adambean
This provides instructions on how to create a memory/crash dump for submission to Sven Co-op developers, so an issue can be debugged.
   
Award
Favorite
Favorited
Unfavorite
Introduction
When Sven Co-op encounters an unexpected error, causing a crash, you are typically greeted with the following error message:



After which the game exits, leaving you bamboozled.

That should be enough for the team to look into your issue, right? You'd be forgiven for thinking so. Unfortunately, due to the way Steam's crash dump handler works, it's far from enough.
  • Crash dumps are only submitted to the team under certain (and opaque) conditions. -- This is rumoured to be when the same issue occurs at least 10 times, though is unverified.
  • Crash dumps produced by Steam's handler have the majority of memory contents stripped out, which only provides the team with a vague idea of what happened. -- This is known as a mini-dump, and not enough information to replicate an issue.
Therefore it is often necessary for our team to be provided with more substantial information, and be provided this manually.

Only follow the instructions in sections below when specifically asked to do so by a verified member of the Sven Co-op team.

Do not submit memory/crash dump files to anyone not on the team. They are useless to all but Sven Co-op's current programmers.
Creating a dump file: For players
When to do this
Follow these instructions while Sven Co-op is currently crashing. You can do this while this message is on your screen:



Producing a dump file
To produce a dump file you can do this in Windows Task Manager.

Important: If you run a 64-bit version of Windows, and the vast majority of Steam customers do, you must launch the 32-bit version of Task Manager. This is because Sven Co-op is compiled as a 32-bit binary. You can find out if you run the 64 or 32 bit version of Windows by opening Start > Settings > System > About, look at the System type line.

To launch 32-bit Task Manager:
  1. Open the Run form by pressing + R.
  2. Insert: %SystemRoot%\SysWOW64\Taskmgr.exe
  3. Click OK.
If you are running a 32-bit version of Windows you can use Task Manager directly as normal. (Press CTRL + SHIFT + ESC.)
  • If Task Manager is in simple mode and you see More details, click that.
  • Switch to the Details tab.
  • Find "svencoop.exe" in the list. (It'll have the Sven Co-op logo next to it.)
  • Right click the row for "svencoop.exe", and choose Create dump file.
  • Wait a few moments while Task Manager copies the contents of your Sven Co-op's memory to a file.
  • When you see a small dialogue titled Dumping process it'll show you where the dump file has been created. Press Open file location to see it.
At this point you should have a File Explorer window open showing the file specified in the Dumping process dialogue. (Usually "svencoop.DMP".)
Creating a dump file: For server operators (and players comfortable with CLI)
When to do this
Follow these instructions while Sven Co-op is currently crashing. If you're running a server you likely won't receive the same graphical message pop-up that players do, but instead a more common Windows crash detection message.

If you are not a server operator and aren't comfortable using a command line interface, this section is not for you. Refer to the previous section.

The instructions below will refer to both a game process (svencoop.exe) and dedicated server process (svends.exe) as just Sven Co-op. You can expand that according to which program you're running. All Command Prompt sessions should ideally be run as the same user that is running Sven Co-op, though if doing that is unavailable you will need to do run a Command Prompt as an administrator instead. If you have a shortcut to Command Prompt you can hold SHIFT and Right Click it to reveal "Run as a different user", which is preferred to "Run as administrator".


Producing a dump file
To produce a dump file you will need ProcDump from SysInternals[docs.microsoft.com]. Ensure you use the 32-bit build of ProcDump "procdump.exe", not the 64-bit build "procdump64.exe".

For either approach you take below you will first need to have ProcDump ready for use:
  1. Extract ProcDump to the location of your choice. (Not important.)
  2. Open a Command Prompt.
  3. Change directory to the location you extracted ProcDump to. (Or reference it with a full absolute path.)
Keep your command prompt open ready for running ProcDump below.

Generating a dump when an exception occurs
You will usually want a crash dump to be produced at the point something goes wrong. ProcDump is able to monitor a process for this eventuality and produce a dump at the right time. (This is particularly useful if your crash occurs as the application starts.)

In your command prompt from above run one of the following commands according to the program you're running:
  • procdump.exe -ma -e -t -w svencoop.exe
  • procdump.exe -ma -e -t -w svends.exe
You will be shown the following:
ProcDump v10.11 - Sysinternals process dump utility Copyright (C) 2009-2021 Mark Russinovich and Andrew Richards Sysinternals - www.sysinternals.com Waiting for process named svencoop.exe...
(or "svends.exe")

Now is the time to start the application if it's not running yet. If ProcDump finds a matching process to monitor, you will see something like this in your command prompt:
Process: svencoop.exe (40192) Process image: C:\Games\Steam\Steamapps\common\Sven Co-op\svencoop.exe CPU threshold: n/a Performance counter: n/a Commit threshold: n/a Threshold seconds: n/a Hung window check: Disabled Log debug strings: Disabled Exception monitor: Unhandled Exception filter: [Includes] * [Excludes] Terminate monitor: Enabled Cloning type: Disabled Concurrent limit: n/a Avoid outage: n/a Number of dumps: 1 Dump folder: C:\Users\<Your Username>\ Dump filename/mask: PROCESSNAME_YYMMDD_HHMMSS Queue to WER: Disabled Kill after dump: Disabled Press Ctrl-C to end monitoring without terminating the process.
Proceed to cause the application to crash again as you would expect to happen. If an exception occurs ProcDump will show a message similar to this:
[20:41:50] Exception: 406D1388 [20:41:50] Exception: 406D1388 [20:41:52] Exception: 406D1388 [20:41:52] Unhandled: 406D1388 [20:41:52] Dump 1 initiated: C:\Users\<Your Username>\svencoop.exe_240514_204152.dmp [20:41:52] Dump 1 writing: Estimated dump file size is 1004 MB. [20:41:54] Dump 1 complete: 1004 MB written in 1.9 seconds [20:41:54] Dump count reached.
Otherwise if no problem occurs you will see:
[20:46:13] Dump count not reached.

Generating a dump at runtime
Producing a dump while the application is running can also be performed, though this is often less useful for an outright crash as the application closes making this too late. This approach is more useful for catching freezes, usually caused by infinite loops or external blockers.

In your command prompt from above run one of the following commands according to the program you're running:
  • procdump.exe -ma svencoop.exe
  • procdump.exe -ma svends.exe
You will be shown the following:
[21:00:56] Dump 1 initiated: C:\Users\<Your Username>\svencoop.exe_240514_210056.dmp [21:00:56] Dump 1 writing: Estimated dump file size is 1110 MB. [21:00:56] Dump 1 complete: 1110 MB written in 0.9 seconds [21:00:57] Dump count reached.
If you are running multiple dedicated server processes you will likely need to target the particular instance by its process ID number instead of just "svends.exe". If you're capable of running multiple dedicated servers I would also expect you're capable of knowing what a process ID is and how to determine which one belongs to which SvenDS process, therefore simply replace the "svends.exe" part of the above command with the process ID number.
Packaging a dump file for submission
As the full memory dump file you've just created will be very big (usually a whole Gigabyte) you'll need to compress it before sending it to the team.

If you have 7-Zip[www.7-zip.org] installed and know how to use it please use this to produce a "7z" file with the ultra compression level. This will usually compact your dump file down to approximately 50 MB. ("rar", "gz", "bz2", and "xz" are also acceptable.)

Otherwise you can use Windows built-in ZIP file creator. Simply right click your dump file, choose Send to, then select Compressed (zipped) folder. This will produce a "zip" file approximately 75 MB.

We would encourage you to use an option to password protect your compressed file if it's available to you. (Usually only for "7z", "rar", and "zip".) This should be something random (for use only once)[passwordsgenerator.net] as you'll need to share it with the person on our team you're sending your dump file to.
Submission to the team
When you have a compressed memory dump file ("7z", "rar", "gz", "bzip2", "xz", or "zip") ready you can send this to the member of the Sven Co-op team that has requested it.

Please email a link to your crash dump, such as shared from a common cloud storage providers (e.g. Google Drive, Microsoft OneDrive, DropBox, etc.) to us at crash-dumps@svencoop.com. (Do not send attachments.) Use an option to share the file with an individual link as this usually keeps the file private. (There's no need to share your file to the public.)

Ideally include a bit of information about the crash dump you're sending such as which game version, what you were doing, what map you were running, whether you were hosting a game or joined to another game, etc. If you've posted an issue in a message board including a link to that would be useful.

If you password protected your file remember to include what the password is in your message, or we won't be able to open it.
2 Comments
Tuate 1 Jun, 2023 @ 1:20pm 
how can i make contact with a team member?
Chicken plays™ 11 Apr, 2023 @ 8:55am 
i aint reading all a dat:RuneScapeguy: