diff options
Diffstat (limited to 'src/stack_walk.c')
| -rw-r--r-- | src/stack_walk.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/stack_walk.c b/src/stack_walk.c index bb4f4be..88a21db 100644 --- a/src/stack_walk.c +++ b/src/stack_walk.c @@ -1,3 +1,10 @@ +#include "stack_walk.h" + +#include <Windows.h> + +#include "module.h" +#include "utils.h" + // enum UNWIND_INFO_FLAGS { // UNW_FLAG_EHANDLER, // UNW_FLAG_UHANDLER, @@ -130,10 +137,10 @@ void print_reg(enum UNWIND_OP_INFO_TYPE op_info) { } } -void walk_stack(CONTEXT* ctx) { - u64 addr = ctx->Rip; - u64 rsp = ctx->Rsp; - u64 rbp = ctx->Rbp; +void walk_stack(void* ctx) { + u64 addr = ((CONTEXT*)ctx)->Rip; + u64 rsp = ((CONTEXT*)ctx)->Rsp; + u64 rbp = ((CONTEXT*)ctx)->Rbp; struct module* module = NULL; struct UNWIND_INFO* u_info = VirtualAlloc(NULL, 4096U, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); while (addr) { |
