IntPtr read_buffer(TargetAddress address, int size)
{
IntPtr data = Marshal.AllocHGlobal (size);
TargetError result = mono_debugger_server_read_memory (
server_handle, address.Address, size, data);
if (result == TargetError.MemoryAccess) {
Marshal.FreeHGlobal (data);
throw new TargetMemoryException (address, size);
} else if (result != TargetError.None) {
Marshal.FreeHGlobal (data);
throw new TargetException (result);
}
return data;
}