win32_crashrpt_dll.h revision 251881
1/* 2 * win32_crashrpt_dll.h : private header file. 3 * 4 * ==================================================================== 5 * Licensed to the Apache Software Foundation (ASF) under one 6 * or more contributor license agreements. See the NOTICE file 7 * distributed with this work for additional information 8 * regarding copyright ownership. The ASF licenses this file 9 * to you under the Apache License, Version 2.0 (the 10 * "License"); you may not use this file except in compliance 11 * with the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, 16 * software distributed under the License is distributed on an 17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 * KIND, either express or implied. See the License for the 19 * specific language governing permissions and limitations 20 * under the License. 21 * ==================================================================== 22 */ 23 24#ifndef SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H 25#define SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H 26 27#ifdef WIN32 28#ifdef SVN_USE_WIN32_CRASHHANDLER 29 30/* public functions in dbghelp.dll */ 31typedef BOOL (WINAPI * MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD ProcessId, 32 HANDLE hFile, MINIDUMP_TYPE DumpType, 33 CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, 34 CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, 35 CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam); 36typedef BOOL (WINAPI * SYMINITIALIZE)(HANDLE hProcess, PSTR UserSearchPath, 37 BOOL fInvadeProcess); 38typedef DWORD (WINAPI * SYMSETOPTIONS)(DWORD SymOptions); 39 40typedef DWORD (WINAPI * SYMGETOPTIONS)(VOID); 41 42typedef BOOL (WINAPI * SYMCLEANUP)(HANDLE hProcess); 43 44typedef BOOL (WINAPI * SYMGETTYPEINFO)(HANDLE hProcess, DWORD64 ModBase, 45 ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType, 46 PVOID pInfo); 47 48typedef BOOL (WINAPI * SYMGETLINEFROMADDR64)(HANDLE hProcess, DWORD64 dwAddr, 49 PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line); 50 51typedef BOOL (WINAPI * SYMENUMSYMBOLS)(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask, 52 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, 53 PVOID UserContext); 54 55typedef BOOL (WINAPI * SYMSETCONTEXT)(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, 56 PIMAGEHLP_CONTEXT Context); 57 58typedef BOOL (WINAPI * SYMFROMADDR)(HANDLE hProcess, DWORD64 Address, 59 PDWORD64 Displacement, PSYMBOL_INFO Symbol); 60 61typedef BOOL (WINAPI * STACKWALK64)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, 62 LPSTACKFRAME64 StackFrame, PVOID ContextRecord, 63 PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, 64 PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, 65 PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, 66 PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); 67 68typedef PVOID (WINAPI * SYMFUNCTIONTABLEACCESS64)(HANDLE hProcess, DWORD64 AddrBase); 69 70typedef DWORD64 (WINAPI * SYMGETMODULEBASE64)(HANDLE hProcess, DWORD64 dwAddr); 71 72/* public functions in kernel32.dll */ 73typedef BOOL (WINAPI * ISDEBUGGERPRESENT)(VOID); 74 75/* function pointers */ 76MINIDUMPWRITEDUMP MiniDumpWriteDump_; 77SYMINITIALIZE SymInitialize_; 78SYMSETOPTIONS SymSetOptions_; 79SYMGETOPTIONS SymGetOptions_; 80SYMCLEANUP SymCleanup_; 81SYMGETTYPEINFO SymGetTypeInfo_; 82SYMGETLINEFROMADDR64 SymGetLineFromAddr64_; 83SYMENUMSYMBOLS SymEnumSymbols_; 84SYMSETCONTEXT SymSetContext_; 85SYMFROMADDR SymFromAddr_; 86STACKWALK64 StackWalk64_; 87SYMFUNCTIONTABLEACCESS64 SymFunctionTableAccess64_; 88SYMGETMODULEBASE64 SymGetModuleBase64_; 89 90#endif /* SVN_USE_WIN32_CRASHHANDLER */ 91#endif /* WIN32 */ 92 93#endif /* SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H */