| /** |
| * ... |
| * |
| * Copyright: Copyright Benjamin Thaut 2010 - 2011. |
| * License: Distributed under the |
| * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). |
| * (See accompanying file LICENSE) |
| * Authors: Benjamin Thaut, Sean Kelly |
| * Source: $(DRUNTIMESRC core/sys/windows/_dbghelp_types.d) |
| */ |
| |
| module core.sys.windows.dbghelp_types; |
| version (Windows): |
| @system: |
| |
| version (ANSI) {} else version = Unicode; |
| |
| import core.sys.windows.windef; |
| import core.sys.windows.imagehlp /+: ADDRESS_MODE+/; |
| |
| public import core.sys.windows.winnt : TCHAR; |
| |
| /* |
| enum ADDRESS_MODE : DWORD |
| { |
| AddrMode1616 = 0, |
| AddrMode1632 = 1, |
| AddrModeReal = 2, |
| AddrModeFlat = 3, |
| } |
| */ |
| enum : DWORD |
| { |
| SYMOPT_DEFERRED_LOAD = 0x00000004, |
| SYMOPT_FAIL_CRITICAL_ERRORS = 0x00000200, |
| SYMOPT_LOAD_LINES = 0x00000010, |
| SYMOPT_DEBUG = 0x80000000, |
| } |
| |
| enum : ULONG |
| { |
| CBA_READ_MEMORY = 0x00000006, |
| CBA_DEBUG_INFO = 0x10000000, |
| } |
| |
| public import core.sys.windows.basetyps : GUID; |
| |
| struct ADDRESS64 |
| { |
| DWORD64 Offset; |
| WORD Segment; |
| ADDRESS_MODE Mode; |
| } |
| |
| struct KDHELP64 |
| { |
| DWORD64 Thread; |
| DWORD ThCallbackStack; |
| DWORD ThCallbackBStore; |
| DWORD NextCallback; |
| DWORD FramePointer; |
| DWORD64 KiCallUserMode; |
| DWORD64 KeUserCallbackDispatcher; |
| DWORD64 SystemRangeStart; |
| DWORD64 KiUserExceptionDispatcher; |
| DWORD64 StackBase; |
| DWORD64 StackLimit; |
| DWORD64[5] Reserved; |
| } |
| |
| struct STACKFRAME64 |
| { |
| ADDRESS64 AddrPC; |
| ADDRESS64 AddrReturn; |
| ADDRESS64 AddrFrame; |
| ADDRESS64 AddrStack; |
| ADDRESS64 AddrBStore; |
| PVOID FuncTableEntry; |
| DWORD64[4] Params; |
| BOOL Far; |
| BOOL Virtual; |
| DWORD64[3] Reserved; |
| KDHELP64 KdHelp; |
| } |
| |
| public import core.sys.windows.winnt : IMAGE_FILE_MACHINE_I386, IMAGE_FILE_MACHINE_IA64, IMAGE_FILE_MACHINE_AMD64; |
| |
| struct IMAGEHLP_LINEA64 |
| { |
| DWORD SizeOfStruct; |
| PVOID Key; |
| DWORD LineNumber; |
| PCSTR FileName; |
| DWORD64 Address; |
| } |
| struct IMAGEHLP_LINEW64 |
| { |
| DWORD SizeOfStruct; |
| PVOID Key; |
| DWORD LineNumber; |
| PWSTR FileName; |
| DWORD64 Address; |
| } |
| |
| enum SYM_TYPE : int |
| { |
| SymNone = 0, |
| SymCoff, |
| SymCv, |
| SymPdb, |
| SymExport, |
| SymDeferred, |
| SymSym, |
| SymDia, |
| SymVirtual, |
| NumSymTypes, |
| } |
| |
| struct IMAGEHLP_MODULEA64 |
| { |
| DWORD SizeOfStruct; |
| DWORD64 BaseOfImage; |
| DWORD ImageSize; |
| DWORD TimeDateStamp; |
| DWORD CheckSum; |
| DWORD NumSyms; |
| SYM_TYPE SymType; |
| CHAR[32] ModuleName = 0; |
| CHAR[256] ImageName = 0; |
| CHAR[256] LoadedImageName = 0; |
| // new elements: 07-Jun-2002 |
| version (none) |
| { |
| CHAR[256] LoadedPdbName = 0; |
| DWORD CVSig; |
| CHAR[MAX_PATH*3] CVData = 0; |
| DWORD PdbSig; |
| GUID PdbSig70; |
| DWORD PdbAge; |
| BOOL PdbUnmatched; |
| BOOL DbgUnmachted; |
| BOOL LineNumbers; |
| BOOL GlobalSymbols; |
| BOOL TypeInfo; |
| } |
| // new elements: 17-Dec-2003 |
| version (none) |
| { |
| BOOL SourceIndexed; |
| BOOL Publics; |
| } |
| } |
| struct IMAGEHLP_MODULEW64 |
| { |
| DWORD SizeOfStruct; |
| DWORD64 BaseOfImage; |
| DWORD ImageSize; |
| DWORD TimeDateStamp; |
| DWORD CheckSum; |
| DWORD NumSyms; |
| SYM_TYPE SymType; |
| WCHAR[32] ModuleName = 0; |
| WCHAR[256] ImageName = 0; |
| WCHAR[256] LoadedImageName = 0; |
| // new elements: 07-Jun-2002 |
| version (none) |
| { |
| WCHAR[256] LoadedPdbName = 0; |
| DWORD CVSig; |
| WCHAR[MAX_PATH*3] CVData = 0; |
| DWORD PdbSig; |
| GUID PdbSig70; |
| DWORD PdbAge; |
| BOOL PdbUnmatched; |
| BOOL DbgUnmachted; |
| BOOL LineNumbers; |
| BOOL GlobalSymbols; |
| BOOL TypeInfo; |
| } |
| // new elements: 17-Dec-2003 |
| version (none) |
| { |
| BOOL SourceIndexed; |
| BOOL Publics; |
| } |
| } |
| |
| struct IMAGEHLP_SYMBOLA64 |
| { |
| DWORD SizeOfStruct; |
| DWORD64 Address; |
| DWORD Size; |
| DWORD Flags; |
| DWORD MaxNameLength; |
| CHAR[1] Name = 0; |
| } |
| struct IMAGEHLP_SYMBOLW64 |
| { |
| DWORD SizeOfStruct; |
| DWORD64 Address; |
| DWORD Size; |
| DWORD Flags; |
| DWORD MaxNameLength; |
| WCHAR[1] Name = 0; |
| } |
| |
| |
| struct IMAGEHLP_CBA_READ_MEMORY |
| { |
| DWORD64 addr; |
| PVOID buf; |
| DWORD bytes; |
| DWORD *bytesread; |
| } |
| |
| struct API_VERSION |
| { |
| USHORT MajorVersion; |
| USHORT MinorVersion; |
| USHORT Revision; |
| USHORT Reserved; |
| } |
| |
| version (Unicode) |
| { |
| alias IMAGEHLP_LINEW64 IMAGEHLP_LINE64; |
| alias IMAGEHLP_MODULEW64 IMAGEHLP_MODULE64; |
| alias IMAGEHLP_SYMBOLW64 IMAGEHLP_SYMBOL64; |
| } |
| else |
| { |
| alias IMAGEHLP_LINEA64 IMAGEHLP_LINE64; |
| alias IMAGEHLP_MODULEA64 IMAGEHLP_MODULE64; |
| alias IMAGEHLP_SYMBOLA64 IMAGEHLP_SYMBOL64; |
| } |