Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-07-05 16:58:42 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-07-05 16:58:42 +0400
commitf6883a2c09507d0acb9ccbf0156e5948211dc480 (patch)
tree7789b4fecd6b2e846f070e2e0bdb1e16ea7555e9 /src/apps/mplayerc/MiniDump.cpp
parente9b446380bc3bc122e3e3a1d0622163a5f1920a3 (diff)
astyle formatting
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2103 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/apps/mplayerc/MiniDump.cpp')
-rw-r--r--src/apps/mplayerc/MiniDump.cpp214
1 files changed, 107 insertions, 107 deletions
diff --git a/src/apps/mplayerc/MiniDump.cpp b/src/apps/mplayerc/MiniDump.cpp
index 617eaf8ea..7e7801050 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,113 +54,113 @@ 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;
- 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;
+ 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;
}