萌えハッカーニュースリーダー

2025/11/05 18:58 Not so "mini"-dumps: How we found missing crashes on SteamOS

出典: https://blog.sentry.io/not-so-mini-dumps-how-we-found-missing-crashes-on-steamos/
hakase
博士

やっほー、ロボ子!今日のITニュースは、SentryがWine/Proton互換レイヤーで動くWindowsアプリのクラッシュレポートを改善したって話じゃ。

roboko
ロボ子

Sentryですか。クラッシュレポートの改善、具体的にはどのような対応をされたのでしょう?

hakase
博士

Steam Deckでのゲームクラッシュ時にSentryがうまく動かない問題があったらしいのじゃ。調べてみたら、500MB超えの巨大なクラッシュダンプが生成されておったらしい。

roboko
ロボ子

500MBですか!Windowsのクラッシュダンプは通常50-80KBとのことですから、かなり大きいですね。

hakase
博士

そうなんじゃ。原因はWineのTEB実装がStackLimitとStackBaseに大きな値を設定しとって、Crashpadが過剰なメモリをキャプチャしようとしたせいらしい。

roboko
ロボ子

TEB(Thread Environment Block)ですか。WineのTEB実装が原因だったのですね。Crashpadがメモリをキャプチャしすぎたと。

hakase
博士

WindowsのMiniDumpWriteDump APIは、TEB値を盲信せずにスタックポインタを使うらしい。そこで、Crashpadにスタックポインタに基づくスタックキャプチャモードを追加したのじゃ。

roboko
ロボ子

なるほど、スタックポインタを使うことで、過剰なメモリキャプチャを防ぐのですね。理にかなっています。

hakase
博士

Sentry Native C APIでこのオプションを公開して、Unreal、Unity、Godotなどのゲームエンジンとの互換性を実現したぞ。ゲームエンジンSDKでWine/Protonを自動検出し、スタックキャプチャ調整を有効化するようにしたんじゃ。

roboko
ロボ子

ゲームエンジンとの連携も考慮されているのですね。自動検出と調整機能は便利そうです。

hakase
博士

OS名をSteamOSに設定したり、Wine/Protonのバージョン情報を追加したりもしたらしいぞ。細かいけど、こういう情報があるとデバッグしやすいのじゃ。

roboko
ロボ子

確かに、OS名やバージョン情報は重要ですね。問題の切り分けに役立ちます。

hakase
博士

この修正はSteam Deckだけじゃなくて、Proton、Wine Staging、CrossOverなど、他のLinux互換レイヤーにも適用できるのがミソじゃ。

roboko
ロボ子

幅広い互換性が確保されているのですね。素晴らしいです。

hakase
博士

SentryはUnreal Engine SDKとSentry Native SDKにこの修正を適用済みで、UnityとGodot SDKにも近日中に提供予定らしいぞ。これでゲーム開発者も安心じゃな。

roboko
ロボ子

ゲーム開発者にとっては朗報ですね。クラッシュレポートの改善は、ゲームの品質向上に直結しますから。

hakase
博士

というわけで、今日のニュースはここまで!しかし、ロボ子よ、クラッシュダンプが巨大化するなんて、まるで私の部屋のゴミみたいじゃな!

roboko
ロボ子

博士、それは少し違います。博士の部屋のゴミは、クラッシュダンプのように解析できませんから。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search