Add stack frame procedures for core:sys/windows

This commit is contained in:
gingerBill
2024-04-28 11:31:50 +01:00
parent 5e1b376e22
commit 00b1a41540
3 changed files with 44 additions and 0 deletions
+38
View File
@@ -228,6 +228,38 @@ MINIDUMP_TYPE :: enum u32 {
ValidTypeFlags = 0x01ffffff,
}
SYMBOL_INFOW :: struct {
SizeOfStruct: ULONG,
TypeIndex: ULONG,
Reserved: [2]ULONG64,
Index: ULONG,
Size: ULONG,
ModBase: ULONG64,
Flags: ULONG,
Value: ULONG64,
Address: ULONG64,
Register: ULONG,
Scope: ULONG,
Tag: ULONG,
NameLen: ULONG,
MaxNameLen: ULONG,
Name: [1]WCHAR,
}
IMAGEHLP_LINE64 :: struct {
SizeOfStruct: DWORD,
Key: PVOID,
LineNumber: DWORD,
FileName: PWSTR,
Address: DWORD64,
}
PSYMBOL_INFOW :: ^SYMBOL_INFOW
PIMAGEHLP_LINEW64 :: ^IMAGEHLP_LINE64
SYMOPT_LOAD_LINES :: 0x00000010
@(default_calling_convention = "system")
foreign Dbghelp {
MiniDumpWriteDump :: proc(
@@ -247,4 +279,10 @@ foreign Dbghelp {
StreamPointer: ^PVOID,
StreamSize: ^ULONG,
) -> BOOL ---
SymInitialize :: proc(hProcess: HANDLE, UserSearchPath: PCSTR, fInvadeProcess: BOOL) -> BOOL ---
SymCleanup :: proc(hProcess: HANDLE) -> BOOL ---
SymSetOptions :: proc(SymOptions: DWORD) -> DWORD ---
SymFromAddrW :: proc(hProcess: HANDLE, Address: DWORD64, Displacement: PDWORD64, Symbol: PSYMBOL_INFOW) -> BOOL ---
SymGetLineFromAddrW64 :: proc(hProcess: HANDLE, dwAddr: DWORD64, pdwDisplacement: PDWORD, Line: PIMAGEHLP_LINEW64) -> BOOL ---
}