diff options
Diffstat (limited to 'libunwindstack/include/unwindstack/MapInfo.h')
-rw-r--r-- | libunwindstack/include/unwindstack/MapInfo.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/libunwindstack/include/unwindstack/MapInfo.h b/libunwindstack/include/unwindstack/MapInfo.h index ac0df41..9755c48 100644 --- a/libunwindstack/include/unwindstack/MapInfo.h +++ b/libunwindstack/include/unwindstack/MapInfo.h @@ -29,20 +29,25 @@ namespace unwindstack { // Forward declarations. +class Maps; class Memory; struct MapInfo { - MapInfo() = default; - MapInfo(uint64_t start, uint64_t end) : start(start), end(end) {} - MapInfo(uint64_t start, uint64_t end, uint64_t offset, uint64_t flags, const char* name) - : start(start), + MapInfo(Maps* maps) : maps_(maps) {} + MapInfo(Maps* maps, uint64_t start, uint64_t end) : maps_(maps), start(start), end(end) {} + MapInfo(Maps* maps, uint64_t start, uint64_t end, uint64_t offset, uint64_t flags, + const char* name) + : maps_(maps), + start(start), end(end), offset(offset), flags(flags), name(name), load_bias(static_cast<uint64_t>(-1)) {} - MapInfo(uint64_t start, uint64_t end, uint64_t offset, uint64_t flags, const std::string& name) - : start(start), + MapInfo(Maps* maps, uint64_t start, uint64_t end, uint64_t offset, uint64_t flags, + const std::string& name) + : maps_(maps), + start(start), end(end), offset(offset), flags(flags), @@ -50,6 +55,8 @@ struct MapInfo { load_bias(static_cast<uint64_t>(-1)) {} ~MapInfo() = default; + Maps* maps_ = nullptr; + uint64_t start = 0; uint64_t end = 0; uint64_t offset = 0; @@ -69,14 +76,14 @@ struct MapInfo { uint64_t GetLoadBias(const std::shared_ptr<Memory>& process_memory); + Memory* CreateMemory(const std::shared_ptr<Memory>& process_memory); + private: MapInfo(const MapInfo&) = delete; void operator=(const MapInfo&) = delete; Memory* GetFileMemory(); - Memory* CreateMemory(const std::shared_ptr<Memory>& process_memory); - // Protect the creation of the elf object. std::mutex mutex_; }; |