Not so "mini"-dumps: How we found missing crashes on SteamOS
Blog post from Sentry
Sentry recently improved its game engine and native SDKs to better capture crash reports from Windows-built games running on Linux through compatibility layers like Wine and Proton, addressing an issue where crash reports from Steam Deck were missing. The investigation revealed that the root cause was Wine's implementation of the Thread Environment Block (TEB), which inaccurately set large stack limits, leading to excessively large crash dumps that exceeded Sentry's size limits. By switching to a stack pointer-based capture method, Sentry's team developed a three-layer solution that includes smart stack capture in Crashpad, an easy API in Sentry Native, and automatic detection in game engine SDKs. This fix, which is already implemented for Unreal Engine and Sentry Native SDKs and is forthcoming for Unity and Godot SDKs, ensures reliable crash reporting across all Linux compatibility layers, enhancing the experience for developers and gamers using platforms such as Steam Deck and desktop Linux.