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

ReadBuffer() public method

public ReadBuffer ( TargetAddress address, int size ) : byte[]
address TargetAddress
size int
return byte[]
        public override byte[] ReadBuffer(TargetAddress address, int size)
        {
            check_disposed ();
            if (size == 0)
                return new byte [0];
            IntPtr data = IntPtr.Zero;
            try {
                data = read_buffer (address, size);
                byte[] retval = new byte [size];
                Marshal.Copy (data, retval, 0, size);
                return retval;
            } finally {
                Marshal.FreeHGlobal (data);
            }
        }

Usage Example

Example #1
0
        internal TargetAddress ReadDynamicInfo(Inferior inferior)
        {
            Section section = GetSectionByName (".dynamic", false);
            if (section == null)
                return TargetAddress.Null;

            TargetAddress vma = new TargetAddress (info.AddressDomain, section.vma);

            int size = (int) section.size;
            byte[] dynamic = inferior.ReadBuffer (vma, size);

            IntPtr data = IntPtr.Zero;
            try {
                data = Marshal.AllocHGlobal (size);
                Marshal.Copy (dynamic, 0, data, size);
                long base_ptr = bfd_glue_elfi386_locate_base (bfd, data, size);
                if (base_ptr == 0)
                    return TargetAddress.Null;
                else
                    return new TargetAddress (info.AddressDomain, base_ptr);
            } finally {
                if (data != IntPtr.Zero)
                    Marshal.FreeHGlobal (data);
            }
        }
Inferior