llvm-project/lldb/source/Expression/ProcessDataAllocator.cpp

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');
}