LLDB mainline
DumpDataExtractor.cpp File Reference
#include "lldb/Core/DumpDataExtractor.h"
#include "lldb/lldb-defines.h"
#include "lldb/lldb-forward.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/Disassembler.h"
#include "lldb/Core/ModuleList.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/ExecutionContextScope.h"
#include "lldb/Target/MemoryRegionInfo.h"
#include "lldb/Target/MemoryTagManager.h"
#include "lldb/Target/MemoryTagMap.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/SectionLoadList.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Stream.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include <limits>
#include <memory>
#include <string>
#include <cassert>
#include <cctype>
#include <cinttypes>
#include <cmath>
#include <bitset>
#include <optional>
#include <sstream>

Go to the source code of this file.

Macros

#define NON_PRINTABLE_CHAR   '.'

Functions

static std::optional< llvm::APInt > GetAPInt (const DataExtractor &data, lldb::offset_t *offset_ptr, lldb::offset_t byte_size)
static lldb::offset_t DumpAPInt (Stream *s, const DataExtractor &data, lldb::offset_t offset, lldb::offset_t byte_size, bool is_signed, unsigned radix)
static lldb::offset_t DumpInstructions (const DataExtractor &DE, Stream *s, ExecutionContextScope *exe_scope, offset_t start_offset, uint64_t base_addr, size_t number_of_instructions)
 Dumps decoded instructions to a stream.
static bool TryDumpSpecialEscapedChar (Stream &s, const char c)
 Prints the specific escape sequence of the given character to the stream.
static void DumpCharacter (Stream &s, const char c)
 Dump the character to a stream.
template<typename FloatT>
void DumpFloatingPoint (std::ostringstream &ss, FloatT f)
 Dump a floating point type.
static std::optional< MemoryTagMapGetMemoryTags (lldb::addr_t addr, size_t length, ExecutionContextScope *exe_scope)
static void printMemoryTags (const DataExtractor &DE, Stream *s, lldb::addr_t addr, size_t len, const std::optional< MemoryTagMap > &memory_tag_map)
static const llvm::fltSemantics & GetFloatSemantics (const TargetSP &target_sp, size_t byte_size, lldb::Format format)

Macro Definition Documentation

◆ NON_PRINTABLE_CHAR

#define NON_PRINTABLE_CHAR   '.'

Definition at line 51 of file DumpDataExtractor.cpp.

Referenced by lldb_private::DumpDataExtractor().

Function Documentation

◆ DumpAPInt()

lldb::offset_t DumpAPInt ( Stream * s,
const DataExtractor & data,
lldb::offset_t offset,
lldb::offset_t byte_size,
bool is_signed,
unsigned radix )
static

◆ DumpCharacter()

void DumpCharacter ( Stream & s,
const char c )
static

Dump the character to a stream.

A character that is not printable will be represented by its escape sequence.

Definition at line 209 of file DumpDataExtractor.cpp.

References lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), and TryDumpSpecialEscapedChar().

Referenced by lldb_private::DumpDataExtractor().

◆ DumpFloatingPoint()

template<typename FloatT>
void DumpFloatingPoint ( std::ostringstream & ss,
FloatT f )

Dump a floating point type.

Definition at line 221 of file DumpDataExtractor.cpp.

◆ DumpInstructions()

◆ GetAPInt()

◆ GetFloatSemantics()

const llvm::fltSemantics & GetFloatSemantics ( const TargetSP & target_sp,
size_t byte_size,
lldb::Format format )
static

Definition at line 320 of file DumpDataExtractor.cpp.

References lldb::eFormatFloat128, and lldb::eLanguageTypeC.

Referenced by lldb_private::DumpDataExtractor().

◆ GetMemoryTags()

◆ printMemoryTags()

void printMemoryTags ( const DataExtractor & DE,
Stream * s,
lldb::addr_t addr,
size_t len,
const std::optional< MemoryTagMap > & memory_tag_map )
static

◆ TryDumpSpecialEscapedChar()

bool TryDumpSpecialEscapedChar ( Stream & s,
const char c )
static

Prints the specific escape sequence of the given character to the stream.

If the character doesn't have a known specific escape sequence (e.g., '', '
' but not generic escape sequences such as'\x12'), this function will not modify the stream and return false.

Definition at line 172 of file DumpDataExtractor.cpp.

References lldb_private::Stream::Printf().

Referenced by DumpCharacter(), and lldb_private::DumpDataExtractor().