forked from OSchip/llvm-project
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
//===-- ProcessDataAllocator.cpp --------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Core/DataBufferHeap.h"
|
|
#include "lldb/Core/DataExtractor.h"
|
|
#include "lldb/Expression/ProcessDataAllocator.h"
|
|
|
|
using namespace lldb_private;
|
|
|
|
void
|
|
ProcessDataAllocator::Dump(Stream &stream)
|
|
{
|
|
size_t data_size = m_stream_string.GetSize();
|
|
|
|
if (!m_allocation)
|
|
return;
|
|
|
|
lldb::DataBufferSP data(new DataBufferHeap(data_size, 0));
|
|
|
|
Error error;
|
|
if (m_process.ReadMemory (m_allocation, data->GetBytes(), data_size, error) != data_size)
|
|
return;
|
|
|
|
DataExtractor extractor(data, m_process.GetByteOrder(), m_process.GetAddressByteSize());
|
|
|
|
extractor.Dump(&stream, // stream
|
|
0, // offset
|
|
lldb::eFormatBytesWithASCII, // format
|
|
1, // byte size of individual entries
|
|
data_size, // number of entries
|
|
16, // entries per line
|
|
m_allocation, // address to print
|
|
0, // bit size (bitfields only; 0 means ignore)
|
|
0); // bit alignment (bitfields only; 0 means ignore)
|
|
|
|
stream.PutChar('\n');
|
|
}
|