//===-- IRMemoryMap.h -------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_EXPRESSION_IRMEMORYMAP_H #define LLDB_EXPRESSION_IRMEMORYMAP_H #include "lldb/Utility/DataBufferHeap.h" #include "lldb/Utility/UserID.h" #include "lldb/lldb-public.h" #include <map> namespace lldb_private { /// \class IRMemoryMap IRMemoryMap.h "lldb/Expression/IRMemoryMap.h" /// Encapsulates memory that may exist in the process but must /// also be available in the host process. /// /// This class encapsulates a group of memory objects that must be readable or /// writable from the host process regardless of whether the process exists. /// This allows the IR interpreter as well as JITted code to access the same /// memory. All allocations made by this class are represented as disjoint /// intervals. /// /// Point queries against this group of memory objects can be made by the /// address in the tar at which they reside. If the inferior does not exist, /// allocations still get made-up addresses. If an inferior appears at some /// point, then those addresses need to be re-mapped. class IRMemoryMap { … }; } #endif