1251881Speter/* 2251881Speter * win32_crashrpt_dll.h : private header file. 3251881Speter * 4251881Speter * ==================================================================== 5251881Speter * Licensed to the Apache Software Foundation (ASF) under one 6251881Speter * or more contributor license agreements. See the NOTICE file 7251881Speter * distributed with this work for additional information 8251881Speter * regarding copyright ownership. The ASF licenses this file 9251881Speter * to you under the Apache License, Version 2.0 (the 10251881Speter * "License"); you may not use this file except in compliance 11251881Speter * with the License. You may obtain a copy of the License at 12251881Speter * 13251881Speter * http://www.apache.org/licenses/LICENSE-2.0 14251881Speter * 15251881Speter * Unless required by applicable law or agreed to in writing, 16251881Speter * software distributed under the License is distributed on an 17251881Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18251881Speter * KIND, either express or implied. See the License for the 19251881Speter * specific language governing permissions and limitations 20251881Speter * under the License. 21251881Speter * ==================================================================== 22251881Speter */ 23251881Speter 24251881Speter#ifndef SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H 25251881Speter#define SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H 26251881Speter 27251881Speter#ifdef WIN32 28251881Speter#ifdef SVN_USE_WIN32_CRASHHANDLER 29251881Speter 30251881Speter/* public functions in dbghelp.dll */ 31251881Spetertypedef BOOL (WINAPI * MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD ProcessId, 32251881Speter HANDLE hFile, MINIDUMP_TYPE DumpType, 33251881Speter CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, 34251881Speter CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, 35251881Speter CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam); 36251881Spetertypedef BOOL (WINAPI * SYMINITIALIZE)(HANDLE hProcess, PSTR UserSearchPath, 37251881Speter BOOL fInvadeProcess); 38251881Spetertypedef DWORD (WINAPI * SYMSETOPTIONS)(DWORD SymOptions); 39251881Speter 40251881Spetertypedef DWORD (WINAPI * SYMGETOPTIONS)(VOID); 41251881Speter 42251881Spetertypedef BOOL (WINAPI * SYMCLEANUP)(HANDLE hProcess); 43251881Speter 44251881Spetertypedef BOOL (WINAPI * SYMGETTYPEINFO)(HANDLE hProcess, DWORD64 ModBase, 45251881Speter ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType, 46251881Speter PVOID pInfo); 47251881Speter 48251881Spetertypedef BOOL (WINAPI * SYMGETLINEFROMADDR64)(HANDLE hProcess, DWORD64 dwAddr, 49251881Speter PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line); 50251881Speter 51251881Spetertypedef BOOL (WINAPI * SYMENUMSYMBOLS)(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask, 52251881Speter PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, 53251881Speter PVOID UserContext); 54251881Speter 55251881Spetertypedef BOOL (WINAPI * SYMSETCONTEXT)(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, 56251881Speter PIMAGEHLP_CONTEXT Context); 57251881Speter 58251881Spetertypedef BOOL (WINAPI * SYMFROMADDR)(HANDLE hProcess, DWORD64 Address, 59251881Speter PDWORD64 Displacement, PSYMBOL_INFO Symbol); 60251881Speter 61251881Spetertypedef BOOL (WINAPI * STACKWALK64)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, 62251881Speter LPSTACKFRAME64 StackFrame, PVOID ContextRecord, 63251881Speter PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, 64251881Speter PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, 65251881Speter PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, 66251881Speter PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); 67251881Speter 68251881Spetertypedef PVOID (WINAPI * SYMFUNCTIONTABLEACCESS64)(HANDLE hProcess, DWORD64 AddrBase); 69251881Speter 70251881Spetertypedef DWORD64 (WINAPI * SYMGETMODULEBASE64)(HANDLE hProcess, DWORD64 dwAddr); 71251881Speter 72251881Speter/* function pointers */ 73251881SpeterMINIDUMPWRITEDUMP MiniDumpWriteDump_; 74251881SpeterSYMINITIALIZE SymInitialize_; 75251881SpeterSYMSETOPTIONS SymSetOptions_; 76251881SpeterSYMGETOPTIONS SymGetOptions_; 77251881SpeterSYMCLEANUP SymCleanup_; 78251881SpeterSYMGETTYPEINFO SymGetTypeInfo_; 79251881SpeterSYMGETLINEFROMADDR64 SymGetLineFromAddr64_; 80251881SpeterSYMENUMSYMBOLS SymEnumSymbols_; 81251881SpeterSYMSETCONTEXT SymSetContext_; 82251881SpeterSYMFROMADDR SymFromAddr_; 83251881SpeterSTACKWALK64 StackWalk64_; 84251881SpeterSYMFUNCTIONTABLEACCESS64 SymFunctionTableAccess64_; 85251881SpeterSYMGETMODULEBASE64 SymGetModuleBase64_; 86251881Speter 87251881Speter#endif /* SVN_USE_WIN32_CRASHHANDLER */ 88251881Speter#endif /* WIN32 */ 89251881Speter 90251881Speter#endif /* SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H */