Mono.Debugger.Backend.Mono.MonoLanguageBackend.RegisterMethodLoadHandler C# (CSharp) 메소드

RegisterMethodLoadHandler() 개인적인 메소드

private RegisterMethodLoadHandler ( Thread thread, MonoFunctionType func, FunctionBreakpointHandle handle ) : int
thread Thread
func Mono.Debugger.Languages.Mono.MonoFunctionType
handle FunctionBreakpointHandle
리턴 int
        internal int RegisterMethodLoadHandler(Thread thread, MonoFunctionType func,
							FunctionBreakpointHandle handle)
        {
            if (method_load_handlers.Contains (handle.Index))
                return handle.Index;

            if (!thread.CurrentFrame.Language.IsManaged)
                throw new TargetException (TargetError.InvalidContext);

            TargetAddress retval = thread.CallMethod (
                info.InsertSourceBreakpoint, func.SymbolFile.MonoImage,
                func.Token, handle.Index, func.DeclaringType.BaseName);

            MethodLoadedHandler handler = handle.MethodLoaded;

            if (!retval.IsNull) {
                thread.ThreadServant.DoTargetAccess (
                    delegate (TargetMemoryAccess target)  {
                        method_from_jit_info ((TargetAccess) target,
                                      retval, handler);
                        return null;
                });
            }

            method_load_handlers.Add (handle.Index, handler);
            return handle.Index;
        }

Same methods

MonoLanguageBackend::RegisterMethodLoadHandler ( TargetAccess target, TargetAddress info, int index, MethodLoadedHandler handler ) : void