Enhance the Remote / RemoteAST libraries with an error mechanism.

Nothing is producing meaningful errors yet, however.
This commit is contained in:
John McCall
2016-04-20 11:43:07 -07:00
parent 2e3662d1e7
commit 093009b3ef
6 changed files with 536 additions and 43 deletions

View File

@@ -18,35 +18,13 @@
#ifndef SWIFT_REMOTE_MEMORYREADER_H
#define SWIFT_REMOTE_MEMORYREADER_H
#include <cstdint>
#include "swift/Remote/RemoteAddress.h"
#include <string>
namespace swift {
namespace remote {
/// An abstract address in the remote process's address space.
class RemoteAddress {
uint64_t Data;
public:
explicit RemoteAddress(const void *localPtr)
: Data(reinterpret_cast<uintptr_t>(localPtr)) {}
explicit RemoteAddress(uint64_t addressData) : Data(addressData) {}
explicit operator bool() const {
return Data != 0;
}
template <class T>
const T *getLocalPointer() const {
return reinterpret_cast<const T*>(static_cast<uintptr_t>(Data));
}
uint64_t getAddressData() const {
return Data;
}
};
/// An abstract interface for reading memory.
///
/// This abstraction presents memory as if it were a read-only