LLDB mainline
StringPrinter.cpp File Reference
#include "lldb/DataFormatters/StringPrinter.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Target/Language.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/Status.h"
#include "lldb/ValueObject/ValueObject.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/ConvertUTF.h"
#include <cctype>
#include <locale>
#include <memory>

Go to the source code of this file.

Classes

class  DecodedCharBuffer
 DecodedCharBuffer stores the decoded contents of a single character. More...

Namespaces

namespace  lldb_private
 A class that represents a running process on the host machine.
namespace  lldb_private::formatters

Typedefs

using GetPrintableElementType = StringPrinter::GetPrintableElementType
using StringElementType = StringPrinter::StringElementType
using EscapingHelper

Functions

template<StringElementType type>
static DecodedCharBuffer GetPrintableImpl (uint8_t *buffer, uint8_t *buffer_end, uint8_t *&next, StringPrinter::EscapeStyle escape_style)
static bool isprint32 (char32_t codepoint)
DecodedCharBuffer attemptASCIIEscape (llvm::UTF32 c, StringPrinter::EscapeStyle escape_style)
template<>
DecodedCharBuffer GetPrintableImpl< StringElementType::ASCII > (uint8_t *buffer, uint8_t *buffer_end, uint8_t *&next, StringPrinter::EscapeStyle escape_style)
template<>
DecodedCharBuffer GetPrintableImpl< StringElementType::UTF8 > (uint8_t *buffer, uint8_t *buffer_end, uint8_t *&next, StringPrinter::EscapeStyle escape_style)
static DecodedCharBuffer GetPrintable (StringElementType type, uint8_t *buffer, uint8_t *buffer_end, uint8_t *&next, StringPrinter::EscapeStyle escape_style)
static EscapingHelper GetDefaultEscapingHelper (GetPrintableElementType elem_type, StringPrinter::EscapeStyle escape_style)
template<typename SourceDataType>
static bool DumpEncodedBufferToStream (GetPrintableElementType style, llvm::ConversionResult(*ConvertFunction)(const SourceDataType **, const SourceDataType *, llvm::UTF8 **, llvm::UTF8 *, llvm::ConversionFlags), const StringPrinter::ReadBufferAndDumpToStreamOptions &dump_options)
 Read a string encoded in accordance with.
template<typename SourceDataType>
static bool lldb_private::formatters::ReadEncodedBufferAndDumpToStream (StringElementType elem_type, const StringPrinter::ReadStringAndDumpToStreamOptions &options, llvm::ConversionResult(*ConvertFunction)(const SourceDataType **, const SourceDataType *, llvm::UTF8 **, llvm::UTF8 *, llvm::ConversionFlags))
template<>
bool lldb_private::formatters::StringPrinter::ReadStringAndDumpToStream< StringElementType::UTF8 > (const ReadStringAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadStringAndDumpToStream< StringElementType::UTF16 > (const ReadStringAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadStringAndDumpToStream< StringElementType::UTF32 > (const ReadStringAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadStringAndDumpToStream< StringElementType::ASCII > (const ReadStringAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStream< StringElementType::UTF8 > (const ReadBufferAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStream< StringElementType::UTF16 > (const ReadBufferAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStream< StringElementType::UTF32 > (const ReadBufferAndDumpToStreamOptions &options)
template<>
bool lldb_private::formatters::StringPrinter::ReadBufferAndDumpToStream< StringElementType::ASCII > (const ReadBufferAndDumpToStreamOptions &options)

Typedef Documentation

◆ EscapingHelper

Initial value:
std::function<DecodedCharBuffer(uint8_t *, uint8_t *, uint8_t *&)>
DecodedCharBuffer stores the decoded contents of a single character.

Definition at line 58 of file StringPrinter.cpp.

◆ GetPrintableElementType

◆ StringElementType

Function Documentation

◆ attemptASCIIEscape()

◆ DumpEncodedBufferToStream()

template<typename SourceDataType>
bool DumpEncodedBufferToStream ( GetPrintableElementType style,
llvm::ConversionResult(* ConvertFunction )(const SourceDataType **, const SourceDataType *, llvm::UTF8 **, llvm::UTF8 *, llvm::ConversionFlags),
const StringPrinter::ReadBufferAndDumpToStreamOptions & dump_options )
static

◆ GetDefaultEscapingHelper()

EscapingHelper GetDefaultEscapingHelper ( GetPrintableElementType elem_type,
StringPrinter::EscapeStyle escape_style )
static

Definition at line 237 of file StringPrinter.cpp.

References GetPrintable().

Referenced by DumpEncodedBufferToStream().

◆ GetPrintable()

DecodedCharBuffer GetPrintable ( StringElementType type,
uint8_t * buffer,
uint8_t * buffer_end,
uint8_t *& next,
StringPrinter::EscapeStyle escape_style )
static

◆ GetPrintableImpl()

template<StringElementType type>
DecodedCharBuffer GetPrintableImpl ( uint8_t * buffer,
uint8_t * buffer_end,
uint8_t *& next,
StringPrinter::EscapeStyle escape_style )
static

◆ GetPrintableImpl< StringElementType::ASCII >()

template<>
DecodedCharBuffer GetPrintableImpl< StringElementType::ASCII > ( uint8_t * buffer,
uint8_t * buffer_end,
uint8_t *& next,
StringPrinter::EscapeStyle escape_style )

◆ GetPrintableImpl< StringElementType::UTF8 >()

◆ isprint32()

bool isprint32 ( char32_t codepoint)
static

Definition at line 69 of file StringPrinter.cpp.

Referenced by GetPrintableImpl< StringElementType::UTF8 >().