Exemple #1
0
 /// <summary>
 /// Gets the register that contains a variable with a location
 /// type of <c>VLT_REGISTER</c>, and the base register for a
 /// variable with a location type of <c>VLT_REGISTER_RELATIVE</c>.
 /// </summary>
 /// <param name="register">
 /// A <c>CorDebugRegister</c> enumeration value that indicates the
 /// register for a variable with a location type of <c>VLT_REGISTER</c>,
 /// and the base register for a variable with a location type of
 /// <c>VLT_REGISTER_RELATIVE</c>.
 /// </param>
 /// <returns>
 /// The method returns the following values:
 ///
 /// - <c>S_OK</c>: The variable is in the register indicated by the
 ///   <c>register</c> argument.
 ///
 /// - <c>E_FAIL</c>: The variable is not in a register or a
 ///   register-relative location.
 /// </returns>
 public int GetRegister(out CorDebugRegister register)
 {
     fixed(void *pRegister = &register)
     {
         return(Calli(_this, This[0]->GetRegister, pRegister));
     }
 }
        public ICorDebugValue GetLocalMemoryRegisterValue(ulong highWordAddress, CorDebugRegister lowWordRegister, uint cbSigBlob, uint pvSigBlob)
        {
            ICorDebugValue ppValue;

            Interop.CorDebug.ICorDebugValue out_ppValue;
            this.WrappedObject.GetLocalMemoryRegisterValue(highWordAddress, ((Interop.CorDebug.CorDebugRegister)(lowWordRegister)), cbSigBlob, pvSigBlob, out out_ppValue);
            ppValue = ICorDebugValue.Wrap(out_ppValue);
            return(ppValue);
        }
        public ICorDebugValue GetLocalRegisterMemoryValue(CorDebugRegister highWordReg, ulong lowWordAddress, uint cbSigBlob, uint pvSigBlob)
        {
            ICorDebugValue ppValue;

            Interop.CorDebug.ICorDebugValue out_ppValue;
            this.WrappedObject.GetLocalRegisterMemoryValue(((Interop.CorDebug.CorDebugRegister)(highWordReg)), lowWordAddress, cbSigBlob, pvSigBlob, out out_ppValue);
            ppValue = ICorDebugValue.Wrap(out_ppValue);
            return(ppValue);
        }
        public ICorDebugValue GetLocalDoubleRegisterValue(CorDebugRegister highWordReg, CorDebugRegister lowWordReg, uint cbSigBlob, uint pvSigBlob)
        {
            ICorDebugValue ppValue;

            Interop.CorDebug.ICorDebugValue out_ppValue;
            this.WrappedObject.GetLocalDoubleRegisterValue(((Interop.CorDebug.CorDebugRegister)(highWordReg)), ((Interop.CorDebug.CorDebugRegister)(lowWordReg)), cbSigBlob, pvSigBlob, out out_ppValue);
            ppValue = ICorDebugValue.Wrap(out_ppValue);
            return(ppValue);
        }
        public ICorDebugValue GetLocalRegisterValue(CorDebugRegister reg, uint cbSigBlob, uint pvSigBlob)
        {
            ICorDebugValue ppValue;

            Interop.CorDebug.ICorDebugValue out_ppValue;
            this.WrappedObject.GetLocalRegisterValue(((Interop.CorDebug.CorDebugRegister)(reg)), cbSigBlob, pvSigBlob, out out_ppValue);
            ppValue = ICorDebugValue.Wrap(out_ppValue);
            return(ppValue);
        }
 public static ICorDebugValue GetLocalRegisterValue(this ICorDebugNativeFrame instance, CorDebugRegister reg, uint cbSigBlob, uint pvSigBlob)
 {
     ICorDebugValue ppValue;
     instance.__GetLocalRegisterValue(reg, cbSigBlob, pvSigBlob, out ppValue);
     return ppValue;
 }
        static bool TryGetRegisterX86(DbgMachine machine, CorDebugRegister corReg, out X86Register register)
        {
            switch (machine)
            {
            case DbgMachine.X86:
                switch (corReg)
                {
                case CorDebugRegister.REGISTER_X86_EIP:
                    register = X86Register.EIP;
                    return(true);

                case CorDebugRegister.REGISTER_X86_ESP:
                    register = X86Register.ESP;
                    return(true);

                case CorDebugRegister.REGISTER_X86_EBP:
                    register = X86Register.EBP;
                    return(true);

                case CorDebugRegister.REGISTER_X86_EAX:
                    register = X86Register.EAX;
                    return(true);

                case CorDebugRegister.REGISTER_X86_ECX:
                    register = X86Register.ECX;
                    return(true);

                case CorDebugRegister.REGISTER_X86_EDX:
                    register = X86Register.EDX;
                    return(true);

                case CorDebugRegister.REGISTER_X86_EBX:
                    register = X86Register.EBX;
                    return(true);

                case CorDebugRegister.REGISTER_X86_ESI:
                    register = X86Register.ESI;
                    return(true);

                case CorDebugRegister.REGISTER_X86_EDI:
                    register = X86Register.EDI;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_0:
                    register = X86Register.ST0;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_1:
                    register = X86Register.ST1;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_2:
                    register = X86Register.ST2;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_3:
                    register = X86Register.ST3;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_4:
                    register = X86Register.ST4;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_5:
                    register = X86Register.ST5;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_6:
                    register = X86Register.ST6;
                    return(true);

                case CorDebugRegister.REGISTER_X86_FPSTACK_7:
                    register = X86Register.ST7;
                    return(true);

                default:
                    Debug.Fail($"Unknown register number {(int)corReg}");
                    register = default;
                    return(false);
                }

            case DbgMachine.X64:
                switch (corReg)
                {
                case CorDebugRegister.REGISTER_AMD64_RIP:
                    register = X86Register.RIP;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RSP:
                    register = X86Register.RSP;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RBP:
                    register = X86Register.RBP;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RAX:
                    register = X86Register.RAX;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RCX:
                    register = X86Register.RCX;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RDX:
                    register = X86Register.RDX;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RBX:
                    register = X86Register.RBX;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RSI:
                    register = X86Register.RSI;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_RDI:
                    register = X86Register.RDI;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R8:
                    register = X86Register.R8;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R9:
                    register = X86Register.R9;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R10:
                    register = X86Register.R10;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R11:
                    register = X86Register.R11;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R12:
                    register = X86Register.R12;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R13:
                    register = X86Register.R13;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R14:
                    register = X86Register.R14;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_R15:
                    register = X86Register.R15;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM0:
                    register = X86Register.XMM0;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM1:
                    register = X86Register.XMM1;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM2:
                    register = X86Register.XMM2;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM3:
                    register = X86Register.XMM3;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM4:
                    register = X86Register.XMM4;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM5:
                    register = X86Register.XMM5;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM6:
                    register = X86Register.XMM6;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM7:
                    register = X86Register.XMM7;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM8:
                    register = X86Register.XMM8;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM9:
                    register = X86Register.XMM9;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM10:
                    register = X86Register.XMM10;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM11:
                    register = X86Register.XMM11;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM12:
                    register = X86Register.XMM12;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM13:
                    register = X86Register.XMM13;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM14:
                    register = X86Register.XMM14;
                    return(true);

                case CorDebugRegister.REGISTER_AMD64_XMM15:
                    register = X86Register.XMM15;
                    return(true);

                default:
                    Debug.Fail($"Unknown register number {(int)corReg}");
                    register = default;
                    return(false);
                }

            case DbgMachine.Arm:
            case DbgMachine.Arm64:
            default:
                Debug.Fail($"Unsupported machine: {machine}");
                register = default;
                return(false);
            }
        }
 public static ICorDebugValue GetLocalDoubleRegisterValue(this ICorDebugNativeFrame instance, CorDebugRegister highWordReg, CorDebugRegister lowWordReg, uint cbSigBlob, uint pvSigBlob)
 {
     ICorDebugValue ppValue;
     instance.__GetLocalDoubleRegisterValue(highWordReg, lowWordReg, cbSigBlob, pvSigBlob, out ppValue);
     return ppValue;
 }
 public static ICorDebugValue GetLocalRegisterMemoryValue(this ICorDebugNativeFrame instance, CorDebugRegister highWordReg, ulong lowWordAddress, uint cbSigBlob, uint pvSigBlob)
 {
     ICorDebugValue ppValue;
     instance.__GetLocalRegisterMemoryValue(highWordReg, lowWordAddress, cbSigBlob, pvSigBlob, out ppValue);
     return ppValue;
 }
 int ICorDebugNativeFrame.GetLocalDoubleRegisterValue(CorDebugRegister highWordReg, CorDebugRegister lowWordReg, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return(COM_HResults.E_NOTIMPL);
 }
 int ICorDebugNativeFrame.GetLocalMemoryRegisterValue(ulong highWordAddress, CorDebugRegister lowWordRegister, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return(COM_HResults.E_NOTIMPL);
 }
		public static ICorDebugValue GetLocalMemoryRegisterValue(this ICorDebugNativeFrame instance, ulong highWordAddress, CorDebugRegister lowWordRegister, uint cbSigBlob, uint pvSigBlob)
		{
			ICorDebugValue ppValue;
			instance.__GetLocalMemoryRegisterValue(highWordAddress, lowWordRegister, cbSigBlob, pvSigBlob, out ppValue);
			ProcessOutParameter(ppValue);
			return ppValue;
		}
Exemple #13
0
 int ICorDebugNativeFrame.GetLocalRegisterMemoryValue(CorDebugRegister highWordReg, ulong lowWordAddress, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return(Utility.COM_HResults.E_NOTIMPL);
 }
Exemple #14
0
 int ICorDebugNativeFrame.GetLocalRegisterValue(CorDebugRegister reg, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return(Utility.COM_HResults.E_NOTIMPL);
 }
 int ICorDebugNativeFrame.GetLocalMemoryRegisterValue(ulong highWordAddress, CorDebugRegister lowWordRegister, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return Utility.COM_HResults.E_NOTIMPL;
 }
 int ICorDebugNativeFrame.GetLocalDoubleRegisterValue(CorDebugRegister highWordReg, CorDebugRegister lowWordReg, uint cbSigBlob, IntPtr pvSigBlob, out ICorDebugValue ppValue)
 {
     Debug.Assert(false);
     ppValue = null;
     return Utility.COM_HResults.E_NOTIMPL;
 }