diff options
author | jiseob.jang <jiseob.jang@samsung.com> | 2017-09-06 20:40:24 +0900 |
---|---|---|
committer | jiseob.jang <jiseob.jang@samsung.com> | 2017-09-07 11:55:42 +0900 |
commit | cb9516da9df966079e5a34490139eec68c38dafa (patch) | |
tree | 39d5565943e78c35dd013cc771ed2980788fff38 /src/debug/createdump/crashinfo.h | |
parent | 61d6a817e39d3bae0f47dbc09838d51db22a5d30 (diff) | |
download | coreclr-cb9516da9df966079e5a34490139eec68c38dafa.tar.gz coreclr-cb9516da9df966079e5a34490139eec68c38dafa.tar.bz2 coreclr-cb9516da9df966079e5a34490139eec68c38dafa.zip |
Imported Upstream version 2.0.0.12082upstream/2.0.0.12082
Diffstat (limited to 'src/debug/createdump/crashinfo.h')
-rw-r--r-- | src/debug/createdump/crashinfo.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/debug/createdump/crashinfo.h b/src/debug/createdump/crashinfo.h index 914a88e8dd..43e82691aa 100644 --- a/src/debug/createdump/crashinfo.h +++ b/src/debug/createdump/crashinfo.h @@ -38,6 +38,7 @@ public: bool GatherCrashInfo(const char* programPath, MINIDUMP_TYPE minidumpType); void ResumeThreads(); static bool GetStatus(pid_t pid, pid_t* ppid, pid_t* tgid, char** name); + static const MemoryRegion* SearchMemoryRegions(const std::set<MemoryRegion>& regions, uint64_t start); const pid_t Pid() const { return m_pid; } const pid_t Ppid() const { return m_ppid; } @@ -46,9 +47,9 @@ public: ICLRDataTarget* DataTarget() const { return m_dataTarget; } const std::vector<ThreadInfo*> Threads() const { return m_threads; } - const std::set<MemoryRegion> ModuleMappings() const { return m_moduleMappings; } - const std::set<MemoryRegion> OtherMappings() const { return m_otherMappings; } - const std::set<MemoryRegion> MemoryRegions() const { return m_memoryRegions; } + const std::set<MemoryRegion> ModuleMappings() const { return m_moduleMappings; } + const std::set<MemoryRegion> OtherMappings() const { return m_otherMappings; } + const std::set<MemoryRegion> MemoryRegions() const { return m_memoryRegions; } const std::vector<elf_aux_entry> AuxvEntries() const { return m_auxvEntries; } const size_t GetAuxvSize() const { return m_auxvEntries.size() * sizeof(elf_aux_entry); } @@ -58,18 +59,21 @@ public: STDMETHOD_(ULONG, Release)(); // ICLRDataEnumMemoryRegionsCallback - virtual HRESULT STDMETHODCALLTYPE EnumMemoryRegion( - /* [in] */ CLRDATA_ADDRESS address, - /* [in] */ ULONG32 size); + virtual HRESULT STDMETHODCALLTYPE EnumMemoryRegion(/* [in] */ CLRDATA_ADDRESS address, /* [in] */ ULONG32 size); private: bool GetAuxvEntries(); bool EnumerateModuleMappings(); bool GetDSOInfo(); + bool GetELFInfo(uint64_t baseAddress); bool EnumerateMemoryRegionsWithDAC(const char* programPath, MINIDUMP_TYPE minidumpType); + bool EnumerateManagedModules(IXCLRDataProcess* clrDataProcess); + void ReplaceModuleMapping(CLRDATA_ADDRESS baseAddress, const char* pszName); bool ReadMemory(void* address, void* buffer, size_t size); + void InsertMemoryBackedRegion(const MemoryRegion& region); void InsertMemoryRegion(uint64_t address, size_t size); void InsertMemoryRegion(const MemoryRegion& region); + uint32_t GetMemoryRegionFlags(uint64_t start); bool ValidRegion(const MemoryRegion& region); void CombineMemoryRegions(); }; |