Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
Rocket Rage ist leider abgestürzt (Hardwareexcepion: ACCES_VIOLATION)
Eine Dunpdatei wurde gespeichert.
Sende bitte die Datei an x@x.de.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void GameObject::setCategoryBits( unsigned long categoryBits ) { if( this->categoryBits == categoryBits ) return; this->categoryBits = categoryBits; // die neuen Bits für alle bereits bestehenden Shapes setzen for( std::list<dGeomID>::iterator it = geoms.begin(); // hier Access Violation it != geoms.end(); it++ ) { dGeomSetCategoryBits( *it, categoryBits ); } } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
LONG WINAPI expFilter( EXCEPTION_POINTERS* p_exception, DWORD exceptionCode ) { #ifdef _DEBUG if(IsDebuggerPresent()) return EXCEPTION_CONTINUE_SEARCH; //Dem Debugger die Exception überreichen #endif char buffer1[1024]; if( !g_MiniDumpWriteDump ) sprintf_s( buffer1, 1024, "Rocket Rage ist leider abgestürzt. (Hardwareexception: %s)\n\n" "Es konnte keine Dumpdatei gespeichert werden, da \"Dbghelp.dll\" nicht gefunden wurde.\n", GetExceptionCodeString( exceptionCode ) ); else { GetModuleFileNameA( 0, buffer1, 1024 ); SYSTEMTIME stLocalTime; GetLocalTime( &stLocalTime ); char buffer2[1024]; HANDLE hDumpFile; for( int i = 0; i < 2; i++ ) { sprintf_s( buffer2, 1024, "%s %04d-%02d-%02d %02d-%02d-%02d pid%ld tid%ld v%s.dmp", buffer1, stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay, stLocalTime.wHour, stLocalTime.wMinute, stLocalTime.wSecond, GetCurrentProcessId(), GetCurrentThreadId(), strVersion ); hDumpFile = CreateFileA( buffer2, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0 ); if( hDumpFile != INVALID_HANDLE_VALUE ) break; // Dumpfile konnte nicht im eigenen Verzeichnis gespeichert werden GetTempPathA( 1024, buffer1 ); strcat_s( buffer1, 1024, "RocketRage.exe" ); // Also probieren wirs noch im Temporären } if( hDumpFile != INVALID_HANDLE_VALUE ) { MINIDUMP_EXCEPTION_INFORMATION expParam; expParam.ThreadId = GetCurrentThreadId(); expParam.ExceptionPointers = p_exception; expParam.ClientPointers = TRUE; BOOL r = g_MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpWithDataSegs, &expParam, 0, 0); if(r) sprintf_s( buffer1, 1024, "Rocket Rage ist leider abgestürzt. (Hardwareexception: %s)\n\n" "Eine Dumpdatei ist unter \"%s\" gespeichert worden.\n" "Sende bitte die Dumpdatei mit Beschreibung und Betriebssystemversion an BlabReject@web.de.", GetExceptionCodeString( exceptionCode ), buffer2 ); else sprintf_s( buffer1, 1024, "Rocket Rage ist leider abgestürzt. (Hardwareexception: %s)\n" "Es konnte keine Dumpdatei gespeichert werden (Fehlercode %i).\n\n" "Wende dich bitte an BlabReject@web.de.", GetExceptionCodeString( exceptionCode ), GetLastError() ); CloseHandle(hDumpFile); } else { sprintf_s( buffer1, 1024, "Rocket Rage ist leider abgestürzt. (Hardwareexception: %s)\n\n" "Es konnte keine Dumpdatei gespeichert werden, da die Datei\n" "\"%s\"\n" "nicht geöffnet werden konnte (Fehlercode %i).", GetExceptionCodeString( exceptionCode ), buffer2, GetLastError() ); } } std::cout << "Writing crash information to \"crash.txt\" ..." << std::endl; crashLog.open( "crash.txt" ); crashLog << "**************************************************" << std::endl; crashLog << "An exception was thrown!" << std::endl; crashLog << "Exception code: " << exceptionCode << std::endl; crashLog << "Printing stack trace ..." << std::endl; crashLog << "**************************************************" << std::endl << std::endl; MyStackWalker sw; sw.ShowCallstack( GetCurrentThread(), p_exception->ContextRecord ); crashLog.close(); ShowCursor( true ); MessageBoxA( 0, buffer1, "Rocket Rage - Hardware Exception", MB_ICONERROR | MB_TOPMOST | MB_SETFOREGROUND ); ShowCursor( false ); return EXCEPTION_EXECUTE_HANDLER; } |
Werbeanzeige