Description
The debugger crashes with SIGSEGV when it tries to create a DebuggerJitInfo for an interpreter method. This happens when the debugger stops at a breakpoint or Debugger.Break() and needs to resolve method information.
Root cause
It skips JITComplete for interpreter methods, so DJIs are never pre-created. When the debugger later needs a DJI on-demand, the creation path calls InitFuncletAddress, which calls EECodeInfo::Init to resolve the method address. EECodeInfo::Init cannot resolve interpreter method addresses (they are not in any IJitManager), so it leaves m_pJM = NULL.
Proposed fix
https://github.com/kotlarmilos/runtime/tree/fix/ios-debugger-interpreter-crashes
Description
The debugger crashes with SIGSEGV when it tries to create a
DebuggerJitInfofor an interpreter method. This happens when the debugger stops at a breakpoint orDebugger.Break()and needs to resolve method information.Root cause
It skips
JITCompletefor interpreter methods, so DJIs are never pre-created. When the debugger later needs a DJI on-demand, the creation path callsInitFuncletAddress, which callsEECodeInfo::Initto resolve the method address.EECodeInfo::Initcannot resolve interpreter method addresses (they are not in anyIJitManager), so it leavesm_pJM = NULL.Proposed fix
https://github.com/kotlarmilos/runtime/tree/fix/ios-debugger-interpreter-crashes