diff options
author | tetsuo55 <tetsuo55@users.sourceforge.net> | 2010-04-19 00:29:12 +0400 |
---|---|---|
committer | tetsuo55 <tetsuo55@users.sourceforge.net> | 2010-04-19 00:29:12 +0400 |
commit | b072e90c262fef233872e34f93bf298ce0d1fa03 (patch) | |
tree | ee8fd84e6d0e594d6e884e8be7e31d2c24be47fe /src/apps/mplayerc/MiniDump.cpp | |
parent | 5215e9e5c05dcfc26b4314a2b52966cbcea5306f (diff) |
Style patch part1. based on newly released astyle 1.24.
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1790 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/apps/mplayerc/MiniDump.cpp')
-rw-r--r-- | src/apps/mplayerc/MiniDump.cpp | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/src/apps/mplayerc/MiniDump.cpp b/src/apps/mplayerc/MiniDump.cpp index 41272e9d3..8996656a4 100644 --- a/src/apps/mplayerc/MiniDump.cpp +++ b/src/apps/mplayerc/MiniDump.cpp @@ -33,20 +33,20 @@ bool CMiniDump::m_bMiniDumpEnabled = false; typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)( HANDLE hProcess, DWORD dwPid, HANDLE hFile, MINIDUMP_TYPE DumpType,
- CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
- CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
- CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
- );
+ CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
+ CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
+ CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
+ );
CMiniDump::CMiniDump()
{
#ifndef _DEBUG
- SetUnhandledExceptionFilter( UnhandledExceptionFilter );
+ SetUnhandledExceptionFilter( UnhandledExceptionFilter );
#ifndef _WIN64
- // Enable catching in CRT (http://blog.kalmbachnet.de/?postid=75)
+ // Enable catching in CRT (http://blog.kalmbachnet.de/?postid=75)
// PreventSetUnhandledExceptionFilter();
#endif
#endif
@@ -54,114 +54,114 @@ CMiniDump::CMiniDump() LPTOP_LEVEL_EXCEPTION_FILTER WINAPI MyDummySetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter )
{
- return NULL;
+ return NULL;
}
BOOL CMiniDump::PreventSetUnhandledExceptionFilter()
{
- HMODULE hKernel32 = LoadLibrary( _T("kernel32.dll") );
- if ( hKernel32 == NULL )
- return FALSE;
-
- void *pOrgEntry = GetProcAddress( hKernel32, "SetUnhandledExceptionFilter" );
- if ( pOrgEntry == NULL )
- return FALSE;
-
- unsigned char newJump[ 100 ];
- DWORD dwOrgEntryAddr = (DWORD) pOrgEntry;
- dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
- void *pNewFunc = &MyDummySetUnhandledExceptionFilter;
- DWORD dwNewEntryAddr = (DWORD) pNewFunc;
- DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
-
- newJump[ 0 ] = 0xE9; // JMP absolute
- memcpy( &newJump[ 1 ], &dwRelativeAddr, sizeof(pNewFunc) );
- SIZE_T bytesWritten;
- BOOL bRet = WriteProcessMemory( GetCurrentProcess(), pOrgEntry, newJump, sizeof(pNewFunc) + 1, &bytesWritten );
- FreeLibrary( hKernel32 );
- return bRet;
+ HMODULE hKernel32 = LoadLibrary( _T("kernel32.dll") );
+ if ( hKernel32 == NULL )
+ return FALSE;
+
+ void *pOrgEntry = GetProcAddress( hKernel32, "SetUnhandledExceptionFilter" );
+ if ( pOrgEntry == NULL )
+ return FALSE;
+
+ unsigned char newJump[ 100 ];
+ DWORD dwOrgEntryAddr = (DWORD) pOrgEntry;
+ dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
+ void *pNewFunc = &MyDummySetUnhandledExceptionFilter;
+ DWORD dwNewEntryAddr = (DWORD) pNewFunc;
+ DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
+
+ newJump[ 0 ] = 0xE9; // JMP absolute
+ memcpy( &newJump[ 1 ], &dwRelativeAddr, sizeof(pNewFunc) );
+ SIZE_T bytesWritten;
+ BOOL bRet = WriteProcessMemory( GetCurrentProcess(), pOrgEntry, newJump, sizeof(pNewFunc) + 1, &bytesWritten );
+ FreeLibrary( hKernel32 );
+ return bRet;
}
LONG WINAPI CMiniDump::UnhandledExceptionFilter( _EXCEPTION_POINTERS *lpTopLevelExceptionFilter )
{
- LONG retval = EXCEPTION_CONTINUE_SEARCH;
- HWND hParent = NULL;
- HMODULE hDll = NULL;
- _TCHAR szResult[ 800 ];
- _TCHAR szDbgHelpPath[ _MAX_PATH ];
-
- if ( !m_bMiniDumpEnabled )
- return 0;
-
- // firstly see if dbghelp.dll is around and has the function we need
- // look next to the EXE first, as the one in System32 might be old
- // (e.g. Windows 2000)
-
- if ( GetModuleFileName(NULL, szDbgHelpPath, _MAX_PATH) )
- {
- _TCHAR *pSlash = _tcsrchr( szDbgHelpPath, _T('\\') );
- if ( pSlash != NULL )
- {
- _tcscpy_s( pSlash + 1, _MAX_PATH + szDbgHelpPath - pSlash, _T("DBGHELP.DLL") );
- hDll = ::LoadLibrary( szDbgHelpPath );
- }
- }
-
- if ( hDll == NULL )
- {
- // load any version we can
- hDll = ::LoadLibrary( _T("DBGHELP.DLL") );
- }
-
- if ( hDll != NULL )
- {
- MINIDUMPWRITEDUMP pMiniDumpWriteDump = (MINIDUMPWRITEDUMP)::GetProcAddress( hDll, "MiniDumpWriteDump" );
- if ( pMiniDumpWriteDump != NULL )
- {
- _TCHAR szDumpPath[ _MAX_PATH ];
- _TCHAR szVersion[ 40 ];
-
- GetModuleFileName( NULL, szDumpPath, _MAX_PATH );
- _stprintf_s( szVersion, countof(szVersion), _T(".%d.%d.%d.%d"), VERSION_MAJOR, VERSION_MINOR, VERSION_REV, VERSION_PATCH );
- _tcscat_s( szDumpPath, _MAX_PATH, szVersion );
- _tcscat_s( szDumpPath, _MAX_PATH, _T(".dmp") );
-
- // create the file
- HANDLE hFile = ::CreateFile( szDumpPath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
- FILE_ATTRIBUTE_NORMAL, NULL );
-
- if ( hFile != INVALID_HANDLE_VALUE )
- {
- _MINIDUMP_EXCEPTION_INFORMATION ExInfo;
-
- ExInfo.ThreadId = ::GetCurrentThreadId();
- ExInfo.ExceptionPointers = lpTopLevelExceptionFilter;
- ExInfo.ClientPointers = NULL;
-
- // write the dump
- BOOL bOK = pMiniDumpWriteDump( GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );
- if ( bOK )
- {
- _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_CRASH), szDumpPath );
- retval = EXCEPTION_EXECUTE_HANDLER;
- }
- else
- {
- _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_MINIDUMP_FAIL), szDumpPath, GetLastError() );
- }
-
- ::CloseHandle( hFile );
- }
- else
- {
- _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_MINIDUMP_FAIL), szDumpPath, GetLastError() );
- }
- }
- FreeLibrary( hDll );
- }
-
- if ( szResult )
- MessageBox( NULL, szResult, _T("MPC-HC Mini Dump"), MB_OK );
-
- return retval;
+ LONG retval = EXCEPTION_CONTINUE_SEARCH;
+ HWND hParent = NULL;
+ HMODULE hDll = NULL;
+ _TCHAR szResult[ 800 ];
+ _TCHAR szDbgHelpPath[ _MAX_PATH ];
+
+ if ( !m_bMiniDumpEnabled )
+ return 0;
+
+ // firstly see if dbghelp.dll is around and has the function we need
+ // look next to the EXE first, as the one in System32 might be old
+ // (e.g. Windows 2000)
+
+ if ( GetModuleFileName(NULL, szDbgHelpPath, _MAX_PATH) )
+ {
+ _TCHAR *pSlash = _tcsrchr( szDbgHelpPath, _T('\\') );
+ if ( pSlash != NULL )
+ {
+ _tcscpy_s( pSlash + 1, _MAX_PATH + szDbgHelpPath - pSlash, _T("DBGHELP.DLL") );
+ hDll = ::LoadLibrary( szDbgHelpPath );
+ }
+ }
+
+ if ( hDll == NULL )
+ {
+ // load any version we can
+ hDll = ::LoadLibrary( _T("DBGHELP.DLL") );
+ }
+
+ if ( hDll != NULL )
+ {
+ MINIDUMPWRITEDUMP pMiniDumpWriteDump = (MINIDUMPWRITEDUMP)::GetProcAddress( hDll, "MiniDumpWriteDump" );
+ if ( pMiniDumpWriteDump != NULL )
+ {
+ _TCHAR szDumpPath[ _MAX_PATH ];
+ _TCHAR szVersion[ 40 ];
+
+ GetModuleFileName( NULL, szDumpPath, _MAX_PATH );
+ _stprintf_s( szVersion, countof(szVersion), _T(".%d.%d.%d.%d"), VERSION_MAJOR, VERSION_MINOR, VERSION_REV, VERSION_PATCH );
+ _tcscat_s( szDumpPath, _MAX_PATH, szVersion );
+ _tcscat_s( szDumpPath, _MAX_PATH, _T(".dmp") );
+
+ // create the file
+ HANDLE hFile = ::CreateFile( szDumpPath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL, NULL );
+
+ if ( hFile != INVALID_HANDLE_VALUE )
+ {
+ _MINIDUMP_EXCEPTION_INFORMATION ExInfo;
+
+ ExInfo.ThreadId = ::GetCurrentThreadId();
+ ExInfo.ExceptionPointers = lpTopLevelExceptionFilter;
+ ExInfo.ClientPointers = NULL;
+
+ // write the dump
+ BOOL bOK = pMiniDumpWriteDump( GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );
+ if ( bOK )
+ {
+ _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_CRASH), szDumpPath );
+ retval = EXCEPTION_EXECUTE_HANDLER;
+ }
+ else
+ {
+ _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_MINIDUMP_FAIL), szDumpPath, GetLastError() );
+ }
+
+ ::CloseHandle( hFile );
+ }
+ else
+ {
+ _stprintf_s( szResult, countof(szResult), ResStr(IDS_MPC_MINIDUMP_FAIL), szDumpPath, GetLastError() );
+ }
+ }
+ FreeLibrary( hDll );
+ }
+
+ if ( szResult )
+ MessageBox( NULL, szResult, _T("MPC-HC Mini Dump"), MB_OK );
+
+ return retval;
}
|