예제 #1
0
        internal override void OnFunctionResolved(
            DkmClrModuleInstance module,
            DkmRuntimeFunctionResolutionRequest request,
            int token,
            int version,
            int ilOffset)
        {
            var address = DkmClrInstructionAddress.Create(
                module.RuntimeInstance,
                module,
                new DkmClrMethodId(Token: token, Version: (uint)version),
                NativeOffset: uint.MaxValue,
                ILOffset: (uint)ilOffset,
                CPUInstruction: null);

            request.OnFunctionResolved(address);
        }
예제 #2
0
 private static OnFunctionResolvedDelegate <DkmClrModuleInstance, DkmRuntimeFunctionResolutionRequest> OnFunctionResolved(DkmWorkList workList)
 {
     return((DkmClrModuleInstance module,
             DkmRuntimeFunctionResolutionRequest request,
             int token,
             int version,
             int ilOffset) =>
     {
         var address = DkmClrInstructionAddress.Create(
             module.RuntimeInstance,
             module,
             new DkmClrMethodId(Token: token, Version: (uint)version),
             NativeOffset: 0,
             ILOffset: (uint)ilOffset,
             CPUInstruction: null);
         // Use async overload of OnFunctionResolved to avoid deadlock.
         request.OnFunctionResolved(workList, address, result => { });
     });
 }