mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Add stack frame procedures for core:sys/windows
This commit is contained in:
@@ -228,6 +228,38 @@ MINIDUMP_TYPE :: enum u32 {
|
|||||||
ValidTypeFlags = 0x01ffffff,
|
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")
|
@(default_calling_convention = "system")
|
||||||
foreign Dbghelp {
|
foreign Dbghelp {
|
||||||
MiniDumpWriteDump :: proc(
|
MiniDumpWriteDump :: proc(
|
||||||
@@ -247,4 +279,10 @@ foreign Dbghelp {
|
|||||||
StreamPointer: ^PVOID,
|
StreamPointer: ^PVOID,
|
||||||
StreamSize: ^ULONG,
|
StreamSize: ^ULONG,
|
||||||
) -> BOOL ---
|
) -> 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 ---
|
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)
|
// [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation)
|
||||||
GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL ---
|
GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL ---
|
||||||
|
|
||||||
|
RtlCaptureStackBackTrace :: proc(FramesToSkip: ULONG, FramesToCapture: ULONG, BackTrace: [^]PVOID, BackTraceHash: PULONG) -> USHORT ---;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEBUG_PROCESS :: 0x00000001
|
DEBUG_PROCESS :: 0x00000001
|
||||||
|
|||||||
@@ -93,10 +93,14 @@ LONG32 :: i32
|
|||||||
ULONG64 :: u64
|
ULONG64 :: u64
|
||||||
LONG64 :: i64
|
LONG64 :: i64
|
||||||
|
|
||||||
|
DWORD64 :: u64
|
||||||
|
PDWORD64 :: ^DWORD64
|
||||||
|
|
||||||
PDWORD_PTR :: ^DWORD_PTR
|
PDWORD_PTR :: ^DWORD_PTR
|
||||||
ATOM :: distinct WORD
|
ATOM :: distinct WORD
|
||||||
|
|
||||||
wstring :: [^]WCHAR
|
wstring :: [^]WCHAR
|
||||||
|
PWSTR :: [^]WCHAR
|
||||||
|
|
||||||
PBYTE :: ^BYTE
|
PBYTE :: ^BYTE
|
||||||
LPBYTE :: ^BYTE
|
LPBYTE :: ^BYTE
|
||||||
|
|||||||
Reference in New Issue
Block a user