tango.core.tools.WinStackTrace

Stacktracing

Inclusion of this module activates traced exceptions using the tango own tracers if possible.

Members

Aliases

BOOL, INT, LONG
alias BOOL, INT, LONG = int
Undocumented in source.
BYTE
alias BYTE = ubyte
Undocumented in source.
CHAR
alias CHAR = char
Undocumented in source.
HANDLE
alias HANDLE = void*
Undocumented in source.
HMODULE
alias HMODULE = HANDLE
Undocumented in source.
INT_PTR, LONG_PTR
alias INT_PTR, LONG_PTR = long
Undocumented in source.
INT_PTR, LONG_PTR
alias INT_PTR, LONG_PTR = int
Undocumented in source.
LPADDRESS64
alias LPADDRESS64 = ADDRESS64*
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
LPCCH, PCSTR, LPCSTR
alias LPCCH, PCSTR, LPCSTR = const(CHAR)*
Undocumented in source.
LPCWCH, PCWCH, LPCWSTR, PCWSTR
alias LPCWCH, PCWCH, LPCWSTR, PCWSTR = const(WCHAR)*
Undocumented in source.
LPSTACKFRAME64
alias LPSTACKFRAME64 = STACKFRAME64*
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PBYTE, LPBYTE
alias PBYTE, LPBYTE = ubyte*
Undocumented in source.
PCHAR, LPCH, PCH, LPSTR, PSTR
alias PCHAR, LPCH, PCH, LPSTR, PSTR = CHAR*
Undocumented in source.
PCONTEXT, LPCONTEXT
alias PCONTEXT, LPCONTEXT = CONTEXT*
Undocumented in source.
PFUNCTION_TABLE_ACCESS_ROUTINE64
alias PFUNCTION_TABLE_ACCESS_ROUTINE64 = PVOID function(HANDLE hProcess, DWORD64 AddrBase)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PGET_MODULE_BASE_ROUTINE64
alias PGET_MODULE_BASE_ROUTINE64 = fp_SymGetModuleBase64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PIMAGEHLP_LINE64
alias PIMAGEHLP_LINE64 = IMAGEHLP_LINE64*
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PKDHELP64
alias PKDHELP64 = KDHELP64*
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PREAD_PROCESS_MEMORY_ROUTINE64
alias PREAD_PROCESS_MEMORY_ROUTINE64 = BOOL function(HANDLE hProcess, DWORD64 lpBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PSYMBOL_INFO
alias PSYMBOL_INFO = SYMBOL_INFO*
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PSYM_ENUMERATESYMBOLS_CALLBACK
alias PSYM_ENUMERATESYMBOLS_CALLBACK = BOOL function(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PSYM_ENUMMODULES_CALLBACK64
alias PSYM_ENUMMODULES_CALLBACK64 = BOOL function(LPTSTR ModuleName, DWORD64 BaseOfDll, PVOID UserContext)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR, LPCTSTR
alias PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR, LPCTSTR = TCHAR*
Undocumented in source.
PTRANSLATE_ADDRESS_ROUTINE64
alias PTRANSLATE_ADDRESS_ROUTINE64 = DWORD64 function(HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
PUBSYM16
alias PUBSYM16 = DATASYM16
Undocumented in source.
PULONG, PDWORD, LPDWORD, PUINT, LPUINT
alias PULONG, PDWORD, LPDWORD, PUINT, LPUINT = uint*
Undocumented in source.
PULONG64, PDWORD64, PUINT64
alias PULONG64, PDWORD64, PUINT64 = ulong*
Undocumented in source.
PUSHORT, PWORD, LPWORD
alias PUSHORT, PWORD, LPWORD = ushort*
Undocumented in source.
PVOID, LPVOID
alias PVOID, LPVOID = void*
Undocumented in source.
PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR
alias PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR = WCHAR*
Undocumented in source.
TCHAR, _TCHAR
alias TCHAR, _TCHAR = WCHAR
Undocumented in source.
TCHAR, _TCHAR
alias TCHAR, _TCHAR = CHAR
Undocumented in source.
Thread_topContext
alias Thread_topContext = D4core6thread6Thread10topContextMFZPS4core6thread6Thread7Context
Undocumented in source.
UINT_PTR, ULONG_PTR, HANDLE_PTR
alias UINT_PTR, ULONG_PTR, HANDLE_PTR = ulong
Undocumented in source.
UINT_PTR, ULONG_PTR, HANDLE_PTR
alias UINT_PTR, ULONG_PTR, HANDLE_PTR = uint
Undocumented in source.
ULONG, DWORD, UINT, COLORREF
alias ULONG, DWORD, UINT, COLORREF = uint
Undocumented in source.
ULONG64, DWORD64, UINT64
alias ULONG64, DWORD64, UINT64 = ulong
Undocumented in source.
USHORT, WORD, ATOM
alias USHORT, WORD, ATOM = ushort
Undocumented in source.
WCHAR
alias WCHAR = wchar
Undocumented in source.
fp_GetModuleFileNameExA
alias fp_GetModuleFileNameExA = DWORD function(HANDLE hProcess, HMODULE hModule, LPSTR lpFilename, DWORD nSize)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_StackWalk64
alias fp_StackWalk64 = BOOL function(DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymCleanup
alias fp_SymCleanup = BOOL function(HANDLE hProcess)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymEnumSymbols
alias fp_SymEnumSymbols = BOOL function(HANDLE hProcess, ULONG64 BaseOfDll, LPCTSTR Mask, PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymEnumerateModules64
alias fp_SymEnumerateModules64 = BOOL function(HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK64 EnumModulesCallback, PVOID UserContext)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymFromAddr
alias fp_SymFromAddr = BOOL function(HANDLE hProcess, DWORD64 Address, PDWORD64 Displacement, PSYMBOL_INFO Symbol)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymFromName
alias fp_SymFromName = BOOL function(HANDLE hProcess, PCSTR Name, PSYMBOL_INFO Symbol)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymFunctionTableAccess64
alias fp_SymFunctionTableAccess64 = PFUNCTION_TABLE_ACCESS_ROUTINE64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymGetLineFromAddr64
alias fp_SymGetLineFromAddr64 = BOOL function(HANDLE hProcess, DWORD64 dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymGetModuleBase64
alias fp_SymGetModuleBase64 = DWORD64 function(HANDLE hProcess, DWORD64 dwAddr)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymInitialize
alias fp_SymInitialize = BOOL function(HANDLE hProcess, LPCTSTR UserSearchPath, BOOL fInvadeProcess)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymLoadModule64
alias fp_SymLoadModule64 = DWORD64 function(HANDLE hProcess, HANDLE hFile, LPCSTR ImageName, LPCSTR ModuleName, DWORD64 BaseOfDll, DWORD SizeOfDll)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
fp_SymSetOptions
alias fp_SymSetOptions = DWORD function(DWORD SymOptions)
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.

Classes

DebugInfo
class DebugInfo
Undocumented in source.
GlobalDebugInfo
class GlobalDebugInfo
Undocumented in source.
ModuleDebugInfo
class ModuleDebugInfo
Undocumented in source.

Enums

ADDRESS_MODE
enum ADDRESS_MODE
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
FALSE
anonymousenum FALSE
Undocumented in source.
IMAGE_FILE_DEBUG_DIRECTORY
anonymousenum IMAGE_FILE_DEBUG_DIRECTORY
Undocumented in source.
IMAGE_FILE_MACHINE_UNKNOWN
anonymousenum IMAGE_FILE_MACHINE_UNKNOWN
Undocumented in source.
IMAGE_SIZEOF_SHORT_NAME
anonymousenum IMAGE_SIZEOF_SHORT_NAME
Undocumented in source.
MAX_MODULE_NAME32
anonymousenum MAX_MODULE_NAME32
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
MAX_PATH
anonymousenum MAX_PATH
Undocumented in source.
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
anonymousenum SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
sstModule
anonymousenum sstModule
Undocumented in source.

Functions

D4core6thread6Thread10topContextMFZPS4core6thread6Thread7Context
Context* D4core6thread6Thread10topContextMFZPS4core6thread6Thread7Context(core.thread.Thread )
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
GetCurrentProcess
HANDLE GetCurrentProcess()
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
GetCurrentThread
HANDLE GetCurrentThread()
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
GetThreadContext
BOOL GetThreadContext(HANDLE , LPCONTEXT )
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
GlobalDebugInfo_addDebugInfo
void GlobalDebugInfo_addDebugInfo(ModuleDebugInfo minfo)
Undocumented in source. Be warned that the author may not have intended to support it.
GlobalDebugInfo_removeDebugInfo
void GlobalDebugInfo_removeDebugInfo(ModuleDebugInfo minfo)
Undocumented in source. Be warned that the author may not have intended to support it.
IsBadReadPtr
BOOL IsBadReadPtr(void* , uint )
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
ModuleDebugInfo_addDebugInfo
void ModuleDebugInfo_addDebugInfo(ModuleDebugInfo minfo, size_t addr, char* file, char* func, ushort line)
Undocumented in source. Be warned that the author may not have intended to support it.
ModuleDebugInfo_bufferString
char* ModuleDebugInfo_bufferString(ModuleDebugInfo minfo, char[] str)
Undocumented in source. Be warned that the author may not have intended to support it.
ModuleDebugInfo_new
ModuleDebugInfo ModuleDebugInfo_new()
Undocumented in source. Be warned that the author may not have intended to support it.
_initLGPLHostExecutableDebugInfo
void _initLGPLHostExecutableDebugInfo(const(char)[] progName)
Undocumented in source. Be warned that the author may not have intended to support it.
addrToSymbolDetails
bool addrToSymbolDetails(size_t addr, HANDLE hProcess, void delegate(const(char)[] func, const(char)[] file, int line, ptrdiff_t addrOffset) dg)
Undocumented in source. Be warned that the author may not have intended to support it.
alloc
void alloc(T array, intT numItems, bool init)

Allocate the array using malloc

append
void append(T array, I elem, uint* realLength)

Append an item to an array. Optionally keep track of an external 'real length', while doing squared reallocation of the array

clone
T clone(T array)

Clone the given array. The result is allocated using alloc() and copied piecewise from the param. Then it's returned

free
void free(T array)

Deallocate an array allocated with alloc()

getAddrDbgInfo
AddrDebugInfo getAddrDbgInfo(size_t a, ptrdiff_t* diff)
Undocumented in source. Be warned that the author may not have intended to support it.
loadWinAPIFunctions
void loadWinAPIFunctions()
Undocumented in source. Be warned that the author may not have intended to support it.
memset (from tango.stdc.string)
void* memset(void* s, int c, size_t n) via public import tango.stdc.string : memset;
Undocumented in source.
realloc
void realloc(T array, intT numItems, bool init)

Realloc the contents of an array

walkStack
void walkStack(LPCONTEXT ContextRecord, HANDLE hProcess, HANDLE hThread, void delegate(size_t[]) traceReceiver)
Undocumented in source. Be warned that the author may not have intended to support it.
winAddrBacktrace
size_t winAddrBacktrace(TraceContext* winCtx, TraceContext* contextOut, size_t* traceBuf, size_t traceBufLength, int* flags)
Undocumented in source. Be warned that the author may not have intended to support it.
winSymbolizeFrameInfo
bool winSymbolizeFrameInfo(FrameInfo fInfo, const(TraceContext)* context, char[] buf)
Undocumented in source. Be warned that the author may not have intended to support it.

Static variables

GetModuleFileNameExA
fp_GetModuleFileNameExA GetModuleFileNameExA;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
StackWalk64
fp_StackWalk64 StackWalk64;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymCleanup
fp_SymCleanup SymCleanup;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymEnumSymbols
fp_SymEnumSymbols SymEnumSymbols;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymFromAddr
fp_SymFromAddr SymFromAddr;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymFromName
fp_SymFromName SymFromName;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymFunctionTableAccess64
fp_SymFunctionTableAccess64 SymFunctionTableAccess64;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymGetLineFromAddr64
fp_SymGetLineFromAddr64 SymGetLineFromAddr64;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymGetModuleBase64
fp_SymGetModuleBase64 SymGetModuleBase64;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymInitialize
fp_SymInitialize SymInitialize;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymLoadModule64
fp_SymLoadModule64 SymLoadModule64;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SymSetOptions
fp_SymSetOptions SymSetOptions;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.

Structs

ADDRESS64
struct ADDRESS64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
AddrDebugInfo
struct AddrDebugInfo
Undocumented in source.
CONTEXT
struct CONTEXT
Undocumented in source.
Context
struct Context
Undocumented in source.
DATASYM16
struct DATASYM16
Undocumented in source.
EXCEPTION_POINTERS
struct EXCEPTION_POINTERS
Undocumented in source.
FLOATING_SAVE_AREA
struct FLOATING_SAVE_AREA
Undocumented in source.
IMAGEHLP_LINE64
struct IMAGEHLP_LINE64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
IMAGE_DATA_DIRECTORY
struct IMAGE_DATA_DIRECTORY
Undocumented in source.
IMAGE_DEBUG_DIRECTORY
struct IMAGE_DEBUG_DIRECTORY
Undocumented in source.
IMAGE_DOS_HEADER
struct IMAGE_DOS_HEADER
Undocumented in source.
IMAGE_FILE_HEADER
struct IMAGE_FILE_HEADER
Undocumented in source.
IMAGE_NT_HEADERS
struct IMAGE_NT_HEADERS
Undocumented in source.
IMAGE_OPTIONAL_HEADER
struct IMAGE_OPTIONAL_HEADER
Undocumented in source.
IMAGE_SECTION_HEADER
struct IMAGE_SECTION_HEADER
Undocumented in source.
IMAGE_SEPARATE_DEBUG_HEADER
struct IMAGE_SEPARATE_DEBUG_HEADER
Undocumented in source.
KDHELP64
struct KDHELP64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
OMFDirEntry
struct OMFDirEntry
Undocumented in source.
OMFDirHeader
struct OMFDirHeader
Undocumented in source.
OMFModule
struct OMFModule
Undocumented in source.
OMFModuleFull
struct OMFModuleFull
Undocumented in source.
OMFSegDesc
struct OMFSegDesc
Undocumented in source.
OMFSignature
struct OMFSignature
Undocumented in source.
OMFSourceFile
struct OMFSourceFile
Undocumented in source.
OMFSourceLine
struct OMFSourceLine
Undocumented in source.
OMFSourceModule
struct OMFSourceModule
Undocumented in source.
OMFSymHash
struct OMFSymHash
Undocumented in source.
STACKFRAME64
struct STACKFRAME64
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
SYMBOL_INFO
struct SYMBOL_INFO
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
TraceContext
struct TraceContext
Undocumented in source.

Variables

CONTEXT_CONTROL
auto CONTEXT_CONTROL;
Undocumented in source.
CONTEXT_DEBUG_REGISTERS
auto CONTEXT_DEBUG_REGISTERS;
Undocumented in source.
CONTEXT_EXTENDED_REGISTERS
auto CONTEXT_EXTENDED_REGISTERS;
Undocumented in source.
CONTEXT_FLOATING_POINT
auto CONTEXT_FLOATING_POINT;
Undocumented in source.
CONTEXT_FULL
auto CONTEXT_FULL;
Undocumented in source.
CONTEXT_INTEGER
auto CONTEXT_INTEGER;
Undocumented in source.
CONTEXT_SEGMENTS
auto CONTEXT_SEGMENTS;
Undocumented in source.
CONTEXT_i386
auto CONTEXT_i386;
Undocumented in source.
CONTEXT_i486
auto CONTEXT_i486;
Undocumented in source.
MAXIMUM_SUPPORTED_EXTENSION
auto MAXIMUM_SUPPORTED_EXTENSION;
Undocumented in source.
SIZE_OF_80387_REGISTERS
auto SIZE_OF_80387_REGISTERS;
Undocumented in source.
TH32CS_SNAPPROCESS
DWORD TH32CS_SNAPPROCESS;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.
TH32CS_SNAPTHREAD
DWORD TH32CS_SNAPTHREAD;
Undocumented in source but is binding to Windows. You might be able to learn more by searching the web for its name.

Meta

License

Tango License, Apache 2.0

Authors

Tomasz Stachowiak (h3r3tic)