summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/DataBufferMemoryMap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core/DataBufferMemoryMap.cpp')
-rw-r--r--lldb/source/Core/DataBufferMemoryMap.cpp36
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());
+ }
}
}
}
OpenPOWER on IntegriCloud