windows-nt/Source/XPSP1/NT/sdktools/debuggers/imagehlp/globals.h
2020-09-26 16:20:57 +08:00

87 lines
2.9 KiB
C++

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
globals.h
Abstract:
This module implements all global variables used in dbghelp.dll
Author:
Pat Styles (patst) 14-July-2000
Revision History:
--*/
#ifdef GLOBALS
#include <private.h>
#include <symbols.h>
#endif
typedef struct {
HINSTANCE hinst;
HANDLE hHeap;
DWORD tlsIndex;
#ifdef IMAGEHLP_HEAP_DEBUG
LIST_ENTRY HeapHeader;
ULONG_PTR TotalMemory;
ULONG TotalAllocs;
#endif
OSVERSIONINFO OSVerInfo;
API_VERSION ApiVersion;
API_VERSION AppVersion;
ULONG MachineType;
#ifdef BUILD_DBGHELP
HINSTANCE hSrv;
CHAR szSrvName[_MAX_PATH * 2];
LPSTR szSrvParams;
PSYMBOLSERVERPROC fnSymbolServer;
PSYMBOLSERVERCLOSEPROC fnSymbolServerClose;
PSYMBOLSERVERSETOPTIONSPROC fnSymbolServerSetOptions;
DWORD cProcessList;
LIST_ENTRY ProcessList;
BOOL SymInitialized;
DWORD SymOptions;
ULONG LastSymLoadError;
char DebugToken[MAX_SYM_NAME + 1];
PREAD_PROCESS_MEMORY_ROUTINE ImagepUserReadMemory32;
PFUNCTION_TABLE_ACCESS_ROUTINE ImagepUserFunctionTableAccess32;
PGET_MODULE_BASE_ROUTINE ImagepUserGetModuleBase32;
PTRANSLATE_ADDRESS_ROUTINE ImagepUserTranslateAddress32;
#endif
} GLOBALS, *PGLOBALS;
typedef struct {
DWORD tid;
#ifdef BUILD_DBGHELP
PREAD_PROCESS_MEMORY_ROUTINE ImagepUserReadMemory32;
PFUNCTION_TABLE_ACCESS_ROUTINE ImagepUserFunctionTableAccess32;
PGET_MODULE_BASE_ROUTINE ImagepUserGetModuleBase32;
PTRANSLATE_ADDRESS_ROUTINE ImagepUserTranslateAddress32;
IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY AlphaFunctionEntry64;
BOOL DebugFunctionEntries;
class Ia64FunctionEntryCache* Ia64FunctionEntries;
class Amd64FunctionEntryCache* Amd64FunctionEntries;
class Axp32FunctionEntryCache* Axp32FunctionEntries;
class Axp64FunctionEntryCache* Axp64FunctionEntries;
IMAGE_IA64_RUNTIME_FUNCTION_ENTRY Ia64FunctionEntry;
_IMAGE_RUNTIME_FUNCTION_ENTRY Amd64FunctionEntry;
IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY Axp64FunctionEntry;
IMAGE_FUNCTION_ENTRY FunctionEntry32;
IMAGE_FUNCTION_ENTRY64 FunctionEntry64;
VWNDIA64_UNWIND_CONTEXT UnwindContext[VWNDIA64_UNWIND_CONTEXT_TABLE_SIZE];
UINT UnwindContextNew;
#endif
} TLS, *PTLS;
extern GLOBALS g;
extern PTLS GetTlsPtr(void);
#define tlsvar(a) (GetTlsPtr()->a)