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 */ 31 typedef 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); 36 typedef BOOL (WINAPI * SYMINITIALIZE)(HANDLE hProcess, PSTR UserSearchPath, 37 BOOL fInvadeProcess); 38 typedef DWORD (WINAPI * SYMSETOPTIONS)(DWORD SymOptions); 39 40 typedef DWORD (WINAPI * SYMGETOPTIONS)(VOID); 41 42 typedef BOOL (WINAPI * SYMCLEANUP)(HANDLE hProcess); 43 44 typedef BOOL (WINAPI * SYMGETTYPEINFO)(HANDLE hProcess, DWORD64 ModBase, 45 ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType, 46 PVOID pInfo); 47 48 typedef BOOL (WINAPI * SYMGETLINEFROMADDR64)(HANDLE hProcess, DWORD64 dwAddr, 49 PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line); 50 51 typedef BOOL (WINAPI * SYMENUMSYMBOLS)(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask, 52 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, 53 PVOID UserContext); 54 55 typedef BOOL (WINAPI * SYMSETCONTEXT)(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, 56 PIMAGEHLP_CONTEXT Context); 57 58 typedef BOOL (WINAPI * SYMFROMADDR)(HANDLE hProcess, DWORD64 Address, 59 PDWORD64 Displacement, PSYMBOL_INFO Symbol); 60 61 typedef 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 68 typedef PVOID (WINAPI * SYMFUNCTIONTABLEACCESS64)(HANDLE hProcess, DWORD64 AddrBase); 69 70 typedef DWORD64 (WINAPI * SYMGETMODULEBASE64)(HANDLE hProcess, DWORD64 dwAddr); 71 72 /* function pointers */ 73 MINIDUMPWRITEDUMP MiniDumpWriteDump_; 74 SYMINITIALIZE SymInitialize_; 75 SYMSETOPTIONS SymSetOptions_; 76 SYMGETOPTIONS SymGetOptions_; 77 SYMCLEANUP SymCleanup_; 78 SYMGETTYPEINFO SymGetTypeInfo_; 79 SYMGETLINEFROMADDR64 SymGetLineFromAddr64_; 80 SYMENUMSYMBOLS SymEnumSymbols_; 81 SYMSETCONTEXT SymSetContext_; 82 SYMFROMADDR SymFromAddr_; 83 STACKWALK64 StackWalk64_; 84 SYMFUNCTIONTABLEACCESS64 SymFunctionTableAccess64_; 85 SYMGETMODULEBASE64 SymGetModuleBase64_; 86 87 #endif /* SVN_USE_WIN32_CRASHHANDLER */ 88 #endif /* WIN32 */ 89 90 #endif /* SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H */