Mono.Debugger.Backend.Inferior.GetRegisters C# (CSharp) Method

GetRegisters() public method

public GetRegisters ( ) : Registers
return Registers
        public override Registers GetRegisters()
        {
            IntPtr buffer = IntPtr.Zero;
            try {
                int count = arch.CountRegisters;
                int buffer_size = count * 8;
                buffer = Marshal.AllocHGlobal (buffer_size);
                TargetError result = mono_debugger_server_get_registers (
                    server_handle, buffer);
                check_error (result);
                long[] retval = new long [count];
                Marshal.Copy (buffer, retval, 0, count);

                return new Registers (arch, retval);
            } finally {
                if (buffer != IntPtr.Zero)
                    Marshal.FreeHGlobal (buffer);
            }
        }

Usage Example

Esempio n. 1
0
        internal override void Hack_ReturnNull(Inferior inferior)
        {
            Registers regs = inferior.GetRegisters ();
            TargetAddress rsp = new TargetAddress (
                inferior.AddressDomain, regs [(int) X86_Register.RSP].GetValue ());
            TargetAddress rip = inferior.ReadAddress (rsp);
            rsp += TargetAddressSize;

            regs [(int) X86_Register.RIP].SetValue (rip);
            regs [(int) X86_Register.RSP].SetValue (rsp);
            regs [(int) X86_Register.RAX].SetValue (TargetAddress.Null);

            inferior.SetRegisters (regs);
        }
All Usage Examples Of Mono.Debugger.Backend.Inferior::GetRegisters
Inferior