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

Reply via email to