summaryrefslogtreecommitdiffstats
path: root/src/stack_walk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stack_walk.c')
-rw-r--r--src/stack_walk.c15
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) {