/*
* Declarations for DBGHELP
*
* Copyright (C) 2003 Eric Pouech
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_DBGHELP_H
#define __WINE_DBGHELP_H
/* A set of documentation macros (see also imagehlp.h) */
#ifndef __deref_out
# define __deref_out
#endif
#ifndef __deref_out_opt
# define __deref_out_opt
#endif
#ifndef __deref_opt_out
# define __deref_opt_out
#endif
#ifndef __in
# define __in
#endif
#ifndef __in_opt
# define __in_opt
#endif
#ifndef __in_bcount
# define __in_bcount(x)
#endif
#ifndef __in_bcount_opt
# define __in_bcount_opt(x)
#endif
#ifndef __in_ecount
# define __in_ecount(x)
#endif
#ifndef __inout
# define __inout
#endif
#ifndef __inout_opt
# define __inout_opt
#endif
#ifndef __inout_bcount
# define __inout_bcount(x)
#endif
#ifndef __inout_ecount
# define __inout_ecount(x)
#endif
#ifndef __out
# define __out
#endif
#ifndef __out_opt
# define __out_opt
#endif
#ifndef __out_bcount
# define __out_bcount(x)
#endif
#ifndef __out_bcount_opt
# define __out_bcount_opt(x)
#endif
#ifndef __out_ecount
# define __out_ecount(x)
#endif
#ifndef __out_ecount_opt
# define __out_ecount_opt(x)
#endif
#ifndef __out_xcount
# define __out_xcount(x)
#endif
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
#ifdef _WIN64
#ifndef _IMAGEHLP64
#define _IMAGEHLP64
#endif
#endif
typedef struct _LOADED_IMAGE
{
/*************************
* IMAGEHLP equiv *
*************************/
typedef enum
{
} ADDRESS_MODE;
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _tagADDRESS
{
#endif
typedef struct _tagADDRESS64
{
typedef enum
{
SymNone = 0,
} SYM_TYPE;
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _IMAGEHLP_SYMBOL
{
typedef struct _IMAGEHLP_SYMBOLW
{
#endif
typedef struct _IMAGEHLP_SYMBOL64
{
typedef struct _IMAGEHLP_SYMBOLW64
{
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _IMAGEHLP_MODULE
{
typedef struct _IMAGEHLP_MODULEW
{
#endif
typedef struct _IMAGEHLP_MODULE64
{
typedef struct _IMAGEHLP_MODULEW64
{
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _IMAGEHLP_LINE
{
typedef struct _IMAGEHLP_LINEW
{
#endif
typedef struct _IMAGEHLP_LINE64
{
typedef struct _IMAGEHLP_LINEW64
{
typedef struct _SOURCEFILE
{
typedef struct _SOURCEFILEW
{
typedef struct _IMAGEHLP_CBA_READ_MEMORY
{
enum
{
sevInfo = 0,
};
typedef struct _IMAGEHLP_CBA_EVENT
{
typedef struct _IMAGEHLP_CBA_EVENTW
{
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD
{
#endif
typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD64
{
typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOADW64
{
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _IMAGEHLP_DUPLICATE_SYMBOL
{
#endif
typedef struct _IMAGEHLP_DUPLICATE_SYMBOL64
{
/* latest SDK defines:
#define SYMOPT_ALLOW_ABSOLUTE_SYMBOLS 0x00000800
#define SYMOPT_IGNORE_NT_SYMPATH 0x00001000
*/
typedef struct _IMAGEHLP_STACK_FRAME
{
typedef struct _DBGHELP_MODLOAD_DATA
{
/*************************
* MiniDUMP *
*************************/
#include <pshpack4.h>
/* DebugHelp */
typedef enum _MINIDUMP_TYPE
{
typedef enum _MINIDUMP_CALLBACK_TYPE
{
typedef struct _MINIDUMP_THREAD_CALLBACK
{
typedef struct _MINIDUMP_THREAD_EX_CALLBACK
{
typedef struct _MINIDUMP_INCLUDE_THREAD_CALLBACK
{
typedef enum _THREAD_WRITE_FLAGS
{
typedef struct _MINIDUMP_MODULE_CALLBACK
{
typedef struct _MINIDUMP_INCLUDE_MODULE_CALLBACK
{
typedef enum _MODULE_WRITE_FLAGS
{
typedef struct _MINIDUMP_CALLBACK_INPUT
{
union
{
typedef struct _MINIDUMP_CALLBACK_OUTPUT
{
union
{
struct
{
typedef BOOL (WINAPI* MINIDUMP_CALLBACK_ROUTINE)(PVOID, const PMINIDUMP_CALLBACK_INPUT, PMINIDUMP_CALLBACK_OUTPUT);
typedef struct _MINIDUMP_CALLBACK_INFORMATION
{
void* CallbackParam;
typedef struct _MINIDUMP_LOCATION_DESCRIPTOR
{
typedef struct _MINIDUMP_LOCATION_DESCRIPTOR64
{
typedef struct _MINIDUMP_DIRECTORY
{
typedef struct _MINIDUMP_EXCEPTION
{
typedef struct _MINIDUMP_EXCEPTION_INFORMATION
{
typedef struct MINIDUMP_EXCEPTION_STREAM
{
typedef struct _MINIDUMP_HEADER
{
union
{
typedef struct _MINIDUMP_MEMORY_DESCRIPTOR
{
typedef struct _MINIDUMP_MEMORY_LIST
{
typedef struct _MINIDUMP_MISC_INFO
{
typedef struct _MINIDUMP_MODULE
{
typedef struct _MINIDUMP_MODULE_LIST
{
typedef struct _MINIDUMP_STRING
{
typedef struct _MINIDUMP_SYSTEM_INFO
{
union
{
struct
{
union
{
struct
{
union _CPU_INFORMATION
{
struct
{
} X86CpuInfo;
struct
{
} OtherCpuInfo;
} Cpu;
typedef struct _MINIDUMP_THREAD
{
typedef struct _MINIDUMP_THREAD_LIST
{
typedef struct _MINIDUMP_USER_STREAM
{
void* Buffer;
typedef struct _MINIDUMP_USER_STREAM_INFORMATION
{
typedef enum _MINIDUMP_STREAM_TYPE
{
UnusedStream = 0,
const PMINIDUMP_CALLBACK_INFORMATION);
ULONG*);
#include <poppack.h>
/*************************
* MODULE handling *
*************************/
/* flags for SymLoadModuleEx */
/*************************
* Symbol Handling *
*************************/
typedef struct _SYMBOL_INFO
{
typedef struct _SYMBOL_INFOW
{
typedef struct _SYMBOL_INFO_PACKAGE
{
typedef struct _SYMBOL_INFO_PACKAGEW
{
typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO
{
typedef struct _IMAGEHLP_GET_TYPE_INFO_PARAMS
{
typedef struct _TI_FINDCHILDREN_PARAMS
{
PVOID);
PVOID);
BOOL WINAPI SymSearch(HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD);
BOOL WINAPI SymSearchW(HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD);
/*************************
* Source Files *
*************************/
PVOID);
typedef struct _SRCCODEINFO
{
typedef struct _SRCCODEINFOW
{
BOOL WINAPI SymEnumSourceLines(HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID);
BOOL WINAPI SymEnumSourceLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID);
/*************************
* File & image handling *
*************************/
#define hdBase 0
/*************************
* Context management *
*************************/
/*************************
* Stack management *
*************************/
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _KDHELP
{
#endif
typedef struct _KDHELP64
{
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
typedef struct _STACKFRAME
{
#endif
typedef struct _STACKFRAME64
{
/*************************
* Version, global stuff *
*************************/
typedef struct API_VERSION
{
typedef struct _IMAGE_DEBUG_INFORMATION
{
/*************************
* Version, global stuff *
*************************/
/* 32-bit functions */
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#else
BOOL WINAPI StackWalk(DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID, PREAD_PROCESS_MEMORY_ROUTINE, PFUNCTION_TABLE_ACCESS_ROUTINE, PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE);
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_DBGHELP_H */