MCPcopy Create free account
hub / github.com/bloomberg/pystack / ProcessMemoryManager

Class ProcessMemoryManager

src/pystack/_pystack/mem.h:163–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

161};
162
163class ProcessMemoryManager : public AbstractRemoteMemoryManager
164{
165 // Constructors
166 public:
167 explicit ProcessMemoryManager(pid_t pid);
168 explicit ProcessMemoryManager(pid_t pid, const std::vector<VirtualMap>& vmaps);
169
170 // Methods
171 ssize_t copyMemoryFromProcess(remote_addr_t addr, size_t size, void* dst) const override;
172 bool isAddressValid(remote_addr_t addr, const VirtualMap& map) const override;
173
174 private:
175 // Data members
176 pid_t d_pid;
177 std::vector<VirtualMap> d_vmaps;
178 mutable LRUCache d_lru_cache;
179 mutable file_unique_ptr d_memfile;
180
181 // Methods
182 ssize_t readChunk(remote_addr_t addr, size_t len, char* dst) const;
183 ssize_t readChunkDirect(remote_addr_t addr, size_t len, char* dst) const;
184 ssize_t readChunkThroughMemFile(remote_addr_t addr, size_t len, char* dst) const;
185};
186
187struct SimpleVirtualMap
188{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected