Hi, There is the following problem in our debugger and we can't figure out its exact reason:
We have the following helper called from JITted code (it may be inserted at any point in the IL stream) : FCIMPL0(void, JIT_Checkpoint) { THROWSCOMPLUSEXCEPTION(); HELPER_METHOD_FRAME_BEGIN_0(); DebuggerExitFrame __def; g_pDebugInterface->SendCheckpoint(GetThread()); __def.Pop(); HELPER_METHOD_FRAME_END(); } HCIMPLEND The SendCheckpoint () function is actually SendUserBreakpoint () sending the instance of the class DebuggerCheckpoint : public DebuggerUserBreakpoint. The problem arises when we need to make a gc in DebuggerCheckpoint::TriggerPatch, eventually we get access violation in the scanroots stackwalk. Is it illegal to do GC in the handler or it is something else? Any help welcome. Evgeny Vigdorchik St.Petersburg State University Institute of Information Systems