mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-12 14:21:25 -07:00
Add stack frame procedures for core:sys/windows
This commit is contained in:
@@ -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 ---
|
||||
}
|
||||
|
||||
@@ -460,6 +460,8 @@ foreign kernel32 {
|
||||
PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL ---
|
||||
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation)
|
||||
GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL ---
|
||||
|
||||
RtlCaptureStackBackTrace :: proc(FramesToSkip: ULONG, FramesToCapture: ULONG, BackTrace: [^]PVOID, BackTraceHash: PULONG) -> USHORT ---;
|
||||
}
|
||||
|
||||
DEBUG_PROCESS :: 0x00000001
|
||||
|
||||
@@ -93,10 +93,14 @@ LONG32 :: i32
|
||||
ULONG64 :: u64
|
||||
LONG64 :: i64
|
||||
|
||||
DWORD64 :: u64
|
||||
PDWORD64 :: ^DWORD64
|
||||
|
||||
PDWORD_PTR :: ^DWORD_PTR
|
||||
ATOM :: distinct WORD
|
||||
|
||||
wstring :: [^]WCHAR
|
||||
PWSTR :: [^]WCHAR
|
||||
|
||||
PBYTE :: ^BYTE
|
||||
LPBYTE :: ^BYTE
|
||||
|
||||
Reference in New Issue
Block a user