Steamworks Belgeleri
Steam Hata Bildirimi
Not: Steam hata bildirimi, sadece Windows 32 bit uygulamaları için desteklenmektedir.

Genel Bakış

Eğer Steam hata bildirimi entegre edildiyse Steam, benzer 10 olağan dışı durumun meydana geldikten sonraki diğer bütün olağan dışı durumların küçük dökümlerini otomatik olarak yükler.

Çökmelerin detaylarını öğrenmek için Steamworks partner arka ucundaki Hata Raporları sayfasına gidin.

Küçük dökümler yüklenmeden önce yerel olarak bilgisayarda saklanır. Eğer bir dökümü direkt incelemek istiyorsanız oyunun kurulum dizinine giderek bu dökümü bulabilirsiniz.

Entegre Etmek

Eğer önceden Structured Exception Handling kullandıysanız Steam hata bildirimini de kolayca kullanabilirsiniz.

Sizin oluşturduğunuz küçük dökümlerden sorumlu işlevi çağıran Win32 _set_se_translator işlevini bağlamalısınız. Bu işlevde SteamAPI_SetMiniDumpComment ve SteamAPI_WriteMiniDump kullanarak yaşanacak olan çökmeyi Steam'e bildirebilirsiniz.

Örnek

#ifdef _WIN32 #include <Windows.h> void MiniDumpFunction( unsigned int nExceptionCode, EXCEPTION_POINTERS *pException ) { // Buradaki küçük döküme gömülecek herhangi bir yorum oluşturabilir ve belirleyebilirsiniz, // belki buraya kullanıcının oynadığı seviyeyi, sunucuda kaç oyuncu olduğunu, // boştaki bellek miktarını, vb. şeyleri eklemek istiyorsunuz. SteamAPI_SetMiniDumpComment( "Minidump comment: SteamworksExample.exe/n" ); // Buradaki 0 derleme ID'sidir, bunu biz belirlemiyoruz SteamAPI_WriteMiniDump( nExceptionCode, pException, 0 ); } int RealMain( HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow ) { __debugbreak(); return 0; } int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // Burada yaptığımız tek şey "se translator"ı kurduktan sonra ana işlevi çağırmak. // Bu, olağan dışı durumları tespit etmemize ve Steam'e bildirmemize olanak tanır. // // Bu kurulum yönteminin doğru çalışabilmesi için yapısal olağan dışı durum işlemesini // için derleyici işaretlerinizi doğru ayarlamak zorunda olduğunuzu aklınızda bulundurun. if ( IsDebuggerPresent() ) { // Hata ayıklamada olağan dışı durumları maskelemeyi (veya Steam'e bildirmeyi!) istemiyoruz. // Eğer olağan dışı durum işleyicisinden geçmek istiyorsanız oyununuzu // hata ayıklayıcı dışında çalıştırdıktan sonra bir hata ayıklayıcı ekleyin. return RealMain( lpCmdLine, hInstance, nCmdShow ); } _set_se_translator( MiniDumpFunction ); try // bu try bloku "SE translator"ın çalışmasına olanak tanır { return RealMain( hInstance, lpCmdLine, nCmdShow ); } catch( ... ) { return -1; } } #endif

Gereksinimler

Hata bildirimi API'ı şu an için sadece Windows 32 bit uygulamalarını desteklenmektedir.