RemoteAddressSpaceView is the remote memory counter part to
LocalAddressSpaceView that implements the AddressSpaceView
The RemoteAddressSpaceView implementation is a simple wrapper around a
VMReadContext object. A VMReadContext object implements the platform
specific code to
- Read memory from another process.
- Cache those reads and manage the cache lifetime.
- Manage the writability of the cached memory.
Two implementations are provided:
- A Darwin only implementation that allows in-process and out-of-process
reads. The reads are cached by a Darwin specific framework
(CoreSymbolication) and thus the VMReadContext implementation does not
implement a cache.
- A non-Darwin implementation that only allows in-process reads
(basically a no-op). This exists only for testing purposes.
Tests for this functionality will be added in later patches.