Steamapi Writeminidump ^hot^
captures the current state of a program—including the call stack, CPU registers, and exception codes—at the time of a crash. It saves this data as a small
When a commercial PC game crashes, identifying why it happened on a player's machine is difficult due to varying hardware and software environments. Rather than relying on vague player bug reports, developers use memory dumps.
// Set in WinMain: SetUnhandledExceptionFilter(CrashHandler);
, allowing games to capture a "snapshot" of a crash and beam it directly to the developer's dashboard. What is a Mini-dump? SteamAPI WriteMiniDump
If you're debugging a crash in a Steam game and see a .dmp file next to the executable, it likely came from WriteMiniDump . You can open it with WinDbg or Visual Studio if you have matching symbols.
Instead of guessing what caused a crash, you can load the dump file into Visual Studio or WinDbg to see the exact line of code that failed.
The function requires three key pieces of information to be useful: captures the current state of a program—including the
This function captures the current state of a program—including the call stack, registers, and exception code—and writes it to a small "minidump" file. Once written, this file is automatically uploaded to the Steamworks Partner portal for developer review.
#ifdef _WIN32 #include #include #include "steam_api.h" // The custom landing function triggered immediately upon a crash void GameMiniDumpTranslator(unsigned int uExceptionCode, EXCEPTION_POINTERS* pException) // Step A: Provide diagnostic context to the dump file SteamAPI_SetMiniDumpComment("Context: Map=Level3_Boss, Players=1, MemoryFree=2048MB"); // Step B: Write and dispatch the dump out to Valve's servers // Using '104' as our arbitrary internal patch build id SteamAPI_WriteMiniDump(uExceptionCode, pException, 104); // Step C: Terminate gracefully or pass execution depending on setup throw std::runtime_error("Fatal Engine Crash intercepted."); #endif Use code with caution. 2. Initialize the Handler at Runtime
This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later. You can open it with WinDbg or Visual
Visual Studio will take you directly to the code that caused the crash. Best Practices and Considerations
What are you using? (C++, Unity, Unreal Engine?) Do you need an automated way to upload dumps to a server ? Are you targeting Linux / Steam Deck users as well?