[PATCH] D56206: Introduce `RemoteAddressSpaceView` and `VMReadContext`.

Dan Liew via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 2 10:37:02 PST 2019


delcypher created this revision.
delcypher added reviewers: kcc, vitalybuka, dvyukov, cryptoad, eugenis, george.karpenkov, yln.
Herald added subscribers: Sanitizers, mgorny, kubamracek.

`RemoteAddressSpaceView` is the remote memory counter part to
`LocalAddressSpaceView` that implements the `AddressSpaceView`
interface.

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.

rdar://problem/45284065


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D56206

Files:
  lib/sanitizer_common/CMakeLists.txt
  lib/sanitizer_common/sanitizer_internal_defs.h
  lib/sanitizer_common/sanitizer_remote_address_space_view.cc
  lib/sanitizer_common/sanitizer_remote_address_space_view.h
  lib/sanitizer_common/sanitizer_vm_read_context.h
  lib/sanitizer_common/sanitizer_vm_read_context_common.cc
  lib/sanitizer_common/sanitizer_vm_read_context_mac.cc
  lib/sanitizer_common/sanitizer_vm_read_context_stubs.cc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56206.179888.patch
Type: text/x-patch
Size: 15071 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190102/ec87a0b7/attachment.bin>


More information about the llvm-commits mailing list