summaryrefslogtreecommitdiffstats
path: root/lldb/include/lldb/API/SBMemoryRegionInfoList.h
diff options
context:
space:
mode:
authorHoward Hellyer <hhellyer@uk.ibm.com>2016-06-23 08:35:37 +0000
committerHoward Hellyer <hhellyer@uk.ibm.com>2016-06-23 08:35:37 +0000
commit26036843724d49fcd4678f177c02f0097997c731 (patch)
tree3a258e7502c9d527654014155d8672b8f0011e13 /lldb/include/lldb/API/SBMemoryRegionInfoList.h
parent89fb6643e99e3164ca235ecfb886cbbe8eb1dfbb (diff)
downloadbcm5719-llvm-26036843724d49fcd4678f177c02f0097997c731.tar.gz
bcm5719-llvm-26036843724d49fcd4678f177c02f0097997c731.zip
Add MemoryRegionInfo to SB API
Summary: This adds new SB API calls and classes to allow a user of the SB API to obtain a full list of memory regions accessible within the process. Adding this to the API makes it possible use the API for tasks like scanning memory for blocks allocated with a header and footer to track down memory leaks, otherwise just inspecting every address is impractical especially for 64 bit processes. These changes only add the API itself and a base implementation of GetMemoryRegions() to lldb_private::Process::GetMemoryRegions. I will submit separate patches to fill in lldb_private::Process::GetMemoryRegionInfoList and GetMemoryRegionInfo for individual platforms. The original discussion about this is here: http://lists.llvm.org/pipermail/lldb-dev/2016-May/010203.html Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20565 llvm-svn: 273547
Diffstat (limited to 'lldb/include/lldb/API/SBMemoryRegionInfoList.h')
-rw-r--r--lldb/include/lldb/API/SBMemoryRegionInfoList.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/lldb/include/lldb/API/SBMemoryRegionInfoList.h b/lldb/include/lldb/API/SBMemoryRegionInfoList.h
new file mode 100644
index 00000000000..7723820897d
--- /dev/null
+++ b/lldb/include/lldb/API/SBMemoryRegionInfoList.h
@@ -0,0 +1,63 @@
+//===-- SBMemoryRegionInfoList.h --------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SBMemoryRegionInfoList_h_
+#define LLDB_SBMemoryRegionInfoList_h_
+
+#include "lldb/API/SBDefines.h"
+
+class MemoryRegionInfoListImpl;
+
+namespace lldb {
+
+class LLDB_API SBMemoryRegionInfoList
+{
+public:
+
+ SBMemoryRegionInfoList ();
+
+ SBMemoryRegionInfoList (const lldb::SBMemoryRegionInfoList &rhs);
+
+ const SBMemoryRegionInfoList &
+ operator = (const SBMemoryRegionInfoList &rhs);
+
+ ~SBMemoryRegionInfoList ();
+
+ uint32_t
+ GetSize () const;
+
+ bool
+ GetMemoryRegionAtIndex (uint32_t idx, SBMemoryRegionInfo &region_info);
+
+ void
+ Append (lldb::SBMemoryRegionInfo &region);
+
+ void
+ Append (lldb::SBMemoryRegionInfoList &region_list);
+
+ void
+ Clear ();
+
+protected:
+
+ const MemoryRegionInfoListImpl *
+ operator->() const;
+
+ const MemoryRegionInfoListImpl &
+ operator*() const;
+
+private:
+
+ std::unique_ptr<MemoryRegionInfoListImpl> m_opaque_ap;
+
+};
+
+} // namespace lldb
+
+#endif // LLDB_SBMemoryRegionInfoList_h_
OpenPOWER on IntegriCloud