diff options
Diffstat (limited to 'lldb/source/Core/DataBufferMemoryMap.cpp')
-rw-r--r-- | lldb/source/Core/DataBufferMemoryMap.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/lldb/source/Core/DataBufferMemoryMap.cpp b/lldb/source/Core/DataBufferMemoryMap.cpp index 0a94f57e40a..2b85ef49549 100644 --- a/lldb/source/Core/DataBufferMemoryMap.cpp +++ b/lldb/source/Core/DataBufferMemoryMap.cpp @@ -19,7 +19,10 @@ #include "lldb/Host/File.h" #include "lldb/Host/FileSpec.h" #include "lldb/Host/Host.h" +#include "lldb/Core/Log.h" +#include "lldb/lldb-private-log.h" +using namespace lldb; using namespace lldb_private; //---------------------------------------------------------------------- @@ -80,6 +83,9 @@ DataBufferMemoryMap::Clear() { if (m_mmap_addr != NULL) { + LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_MMAP)); + if (log) + log->Printf("DataBufferMemoryMap::Clear() m_mmap_addr = %p, m_mmap_size = %zu", m_mmap_addr, m_mmap_size); ::munmap((void *)m_mmap_addr, m_mmap_size); m_mmap_addr = NULL; m_mmap_size = 0; @@ -104,6 +110,18 @@ DataBufferMemoryMap::MemoryMapFromFileSpec (const FileSpec* filespec, { if (filespec != NULL) { + LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_MMAP)); + if (log) + { + log->Printf("DataBufferMemoryMap::MemoryMapFromFileSpec(file=\"%s/%s\", offset=0x%" PRIx64 ", length=0x%zx, writeable=%i", + filespec->GetDirectory().GetCString(), + filespec->GetFilename().GetCString(), + offset, + length, + writeable); + } + if (length > 0x20000000) + puts("remove this line"); char path[PATH_MAX]; if (filespec->GetPath(path, sizeof(path))) { @@ -148,6 +166,16 @@ DataBufferMemoryMap::MemoryMapFromFileDescriptor (int fd, Clear(); if (fd >= 0) { + LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_MMAP|LIBLLDB_LOG_VERBOSE)); + if (log) + { + log->Printf("DataBufferMemoryMap::MemoryMapFromFileSpec(fd=%i, offset=0x%" PRIx64 ", length=0x%zx, writeable=%i, fd_is_file=%i)", + fd, + offset, + length, + writeable, + fd_is_file); + } struct stat stat; if (::fstat(fd, &stat) == 0) { @@ -175,10 +203,10 @@ DataBufferMemoryMap::MemoryMapFromFileDescriptor (int fd, flags |= MAP_FILE; m_mmap_addr = (uint8_t *)::mmap(NULL, length, prot, flags, fd, offset); + Error error; if (m_mmap_addr == (void*)-1) { - Error error; error.SetErrorToErrno (); if (error.GetError() == EINVAL) { @@ -219,6 +247,12 @@ DataBufferMemoryMap::MemoryMapFromFileDescriptor (int fd, m_data = m_mmap_addr; m_size = length; } + + if (log) + { + log->Printf("DataBufferMemoryMap::MemoryMapFromFileSpec() m_mmap_addr = %p, m_mmap_size = %zu, error = %s", + m_mmap_addr, m_mmap_size, error.AsCString()); + } } } } |