After Microsoft released the remote debug tools for ARM64 i went back to debug my issue.
I am happy to report that i have found the issue:
In JitArm64_BackPatch.cpp
Rootcause:
slow_handler_iter->first is accessed after element has been removed from the std::map.
Issue was that PC got randomly (rarely) a wrong value and crashed after return from exception.
After doing the erase operation after updating the context JitARM64 is working now for Windows!
*cheers*
I am happy to report that i have found the issue:
In JitArm64_BackPatch.cpp
Code:
m_fault_to_handler.erase(slow_handler_iter);
emitter.FlushIcache();
ctx->CTX_PC = (u64)slow_handler_iter->first;Rootcause:
slow_handler_iter->first is accessed after element has been removed from the std::map.
Issue was that PC got randomly (rarely) a wrong value and crashed after return from exception.
After doing the erase operation after updating the context JitARM64 is working now for Windows!
*cheers*
