2 * win32_crashrpt_dll.h : private header file.
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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
21 * ====================================================================
24 #ifndef SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H
25 #define SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H
28 #ifdef SVN_USE_WIN32_CRASHHANDLER
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,
38 typedef DWORD (WINAPI * SYMSETOPTIONS)(DWORD SymOptions);
40 typedef DWORD (WINAPI * SYMGETOPTIONS)(VOID);
42 typedef BOOL (WINAPI * SYMCLEANUP)(HANDLE hProcess);
44 typedef BOOL (WINAPI * SYMGETTYPEINFO)(HANDLE hProcess, DWORD64 ModBase,
45 ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType,
48 typedef BOOL (WINAPI * SYMGETLINEFROMADDR64)(HANDLE hProcess, DWORD64 dwAddr,
49 PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line);
51 typedef BOOL (WINAPI * SYMENUMSYMBOLS)(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask,
52 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
55 typedef BOOL (WINAPI * SYMSETCONTEXT)(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
56 PIMAGEHLP_CONTEXT Context);
58 typedef BOOL (WINAPI * SYMFROMADDR)(HANDLE hProcess, DWORD64 Address,
59 PDWORD64 Displacement, PSYMBOL_INFO Symbol);
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);
68 typedef PVOID (WINAPI * SYMFUNCTIONTABLEACCESS64)(HANDLE hProcess, DWORD64 AddrBase);
70 typedef DWORD64 (WINAPI * SYMGETMODULEBASE64)(HANDLE hProcess, DWORD64 dwAddr);
72 /* public functions in kernel32.dll */
73 typedef BOOL (WINAPI * ISDEBUGGERPRESENT)(VOID);
75 /* function pointers */
76 MINIDUMPWRITEDUMP MiniDumpWriteDump_;
77 SYMINITIALIZE SymInitialize_;
78 SYMSETOPTIONS SymSetOptions_;
79 SYMGETOPTIONS SymGetOptions_;
80 SYMCLEANUP SymCleanup_;
81 SYMGETTYPEINFO SymGetTypeInfo_;
82 SYMGETLINEFROMADDR64 SymGetLineFromAddr64_;
83 SYMENUMSYMBOLS SymEnumSymbols_;
84 SYMSETCONTEXT SymSetContext_;
85 SYMFROMADDR SymFromAddr_;
86 STACKWALK64 StackWalk64_;
87 SYMFUNCTIONTABLEACCESS64 SymFunctionTableAccess64_;
88 SYMGETMODULEBASE64 SymGetModuleBase64_;
90 #endif /* SVN_USE_WIN32_CRASHHANDLER */
93 #endif /* SVN_LIBSVN_SUBR_WIN32_CRASHRPT_DLL_H */