From 147d332de3958f88f98ed33a7d62e04da14c445e Mon Sep 17 00:00:00 2001 From: thirumalai-qcom Date: Tue, 23 Jul 2024 16:21:17 +0530 Subject: [PATCH] libobs: Add ARM64 support to Windows crash handler Adjust obs-win-crash-handler.c to handle instruction pointers and stack traces, improving crash reporting on ARM64 systems. --- libobs/obs-win-crash-handler.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libobs/obs-win-crash-handler.c b/libobs/obs-win-crash-handler.c index 649b0ca96..664a9c6eb 100644 --- a/libobs/obs-win-crash-handler.c +++ b/libobs/obs-win-crash-handler.c @@ -138,7 +138,13 @@ static inline bool get_dbghelp_imports(struct exception_handler_data *data) static inline void init_instruction_data(struct stack_trace *trace) { -#ifdef _WIN64 +#if defined(_M_ARM64) + trace->instruction_ptr = trace->context.Pc; + trace->frame.AddrPC.Offset = trace->instruction_ptr; + trace->frame.AddrFrame.Offset = trace->context.Fp; + trace->frame.AddrStack.Offset = trace->context.Sp; + trace->image_type = IMAGE_FILE_MACHINE_ARM64; +#elif defined(_WIN64) trace->instruction_ptr = trace->context.Rip; trace->frame.AddrPC.Offset = trace->instruction_ptr; trace->frame.AddrFrame.Offset = trace->context.Rbp;