class MarkupFilter

Declaration

class MarkupFilter { /* full declaration omitted */ };

Description

Filter to convert parsed log symbolizer markup elements into human-readable text.

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:33

Member Variables

private llvm::raw_ostream& OS
private llvm::symbolize::LLVMSymbolizer& Symbolizer
private const bool ColorsEnabled
private llvm::symbolize::MarkupParser Parser
private llvm::StringRef Line
private Optional< llvm::symbolize::MarkupFilter::ModuleInfoLine> MIL
private Optional<raw_ostream::Colors> Color
private bool Bold = false
private DenseMap<uint64_t, std::unique_ptr<Module>> Modules
private std::map<uint64_t, MMap> MMaps

Method Overview

  • public MarkupFilter(llvm::raw_ostream & OS, llvm::symbolize::LLVMSymbolizer & Symbolizer, Optional<bool> ColorsEnabled = llvm::None)
  • private uint64_t adjustAddr(uint64_t Addr, llvm::symbolize::MarkupFilter::PCType Type) const
  • private void beginModuleInfoLine(const llvm::symbolize::MarkupFilter::Module * M)
  • private bool checkNumFields(const llvm::symbolize::MarkupNode & Element, size_t Size) const
  • private bool checkNumFieldsAtLeast(const llvm::symbolize::MarkupNode & Element, size_t Size) const
  • private bool checkNumFieldsAtMost(const llvm::symbolize::MarkupNode & Element, size_t Size) const
  • private bool checkTag(const llvm::symbolize::MarkupNode & Node) const
  • private void endAnyModuleInfoLine()
  • public void filter(llvm::StringRef Line)
  • private void filterNode(const llvm::symbolize::MarkupNode & Node)
  • public void finish()
  • private const llvm::symbolize::MarkupFilter::MMap * getContainingMMap(uint64_t Addr) const
  • private const llvm::symbolize::MarkupFilter::MMap * getOverlappingMMap(const llvm::symbolize::MarkupFilter::MMap & Map) const
  • private void highlight()
  • private void highlightValue()
  • private llvm::StringRef lineEnding() const
  • private Optional<uint64_t> parseAddr(llvm::StringRef Str) const
  • private Optional<SmallVector<uint8_t>> parseBuildID(llvm::StringRef Str) const
  • private Optional<uint64_t> parseFrameNumber(llvm::StringRef Str) const
  • private Optional<llvm::symbolize::MarkupFilter::MMap> parseMMap(const llvm::symbolize::MarkupNode & Element) const
  • private Optional<std::string> parseMode(llvm::StringRef Str) const
  • private Optional<llvm::symbolize::MarkupFilter::Module> parseModule(const llvm::symbolize::MarkupNode & Element) const
  • private Optional<uint64_t> parseModuleID(llvm::StringRef Str) const
  • private Optional<llvm::symbolize::MarkupFilter::PCType> parsePCType(llvm::StringRef Str) const
  • private Optional<uint64_t> parseSize(llvm::StringRef Str) const
  • private void printRawElement(const llvm::symbolize::MarkupNode & Element)
  • private void printValue(llvm::Twine Value)
  • private void reportLocation(StringRef::iterator Loc) const
  • private void reportTypeError(llvm::StringRef Str, llvm::StringRef TypeName) const
  • private void resetColor()
  • private void restoreColor()
  • private bool tryBackTrace(const llvm::symbolize::MarkupNode & Node)
  • private bool tryContextualElement(const llvm::symbolize::MarkupNode & Node, const SmallVector<llvm::symbolize::MarkupNode> & DeferredNodes)
  • private bool tryData(const llvm::symbolize::MarkupNode & Node)
  • private bool tryMMap(const llvm::symbolize::MarkupNode & Element, const SmallVector<llvm::symbolize::MarkupNode> & DeferredNodes)
  • private bool tryModule(const llvm::symbolize::MarkupNode & Element, const SmallVector<llvm::symbolize::MarkupNode> & DeferredNodes)
  • private bool tryPC(const llvm::symbolize::MarkupNode & Node)
  • private bool tryPresentation(const llvm::symbolize::MarkupNode & Node)
  • private bool tryReset(const llvm::symbolize::MarkupNode & Element, const SmallVector<llvm::symbolize::MarkupNode> & DeferredNodes)
  • private bool trySGR(const llvm::symbolize::MarkupNode & Node)
  • private bool trySymbol(const llvm::symbolize::MarkupNode & Node)

Methods

MarkupFilter(
    llvm::raw_ostream& OS,
    llvm::symbolize::LLVMSymbolizer& Symbolizer,
    Optional<bool> ColorsEnabled = llvm::None)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:35

Parameters

llvm::raw_ostream& OS
llvm::symbolize::LLVMSymbolizer& Symbolizer
Optional<bool> ColorsEnabled = llvm::None

uint64_t adjustAddr(
    uint64_t Addr,
    llvm::symbolize::MarkupFilter::PCType Type)
    const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:135

Parameters

uint64_t Addr
llvm::symbolize::MarkupFilter::PCType Type

void beginModuleInfoLine(
    const llvm::symbolize::MarkupFilter::Module*
        M)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:92

Parameters

const llvm::symbolize::MarkupFilter::Module* M

bool checkNumFields(
    const llvm::symbolize::MarkupNode& Element,
    size_t Size) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:125

Parameters

const llvm::symbolize::MarkupNode& Element
size_t Size

bool checkNumFieldsAtLeast(
    const llvm::symbolize::MarkupNode& Element,
    size_t Size) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:126

Parameters

const llvm::symbolize::MarkupNode& Element
size_t Size

bool checkNumFieldsAtMost(
    const llvm::symbolize::MarkupNode& Element,
    size_t Size) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:127

Parameters

const llvm::symbolize::MarkupNode& Element
size_t Size

bool checkTag(
    const llvm::symbolize::MarkupNode& Node) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:124

Parameters

const llvm::symbolize::MarkupNode& Node

void endAnyModuleInfoLine()

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:93

void filter(llvm::StringRef Line)

Description

Filters a line containing symbolizer markup and writes the human-readable results to the output stream. Invalid or unimplemented markup elements are removed. Some output may be deferred until future filter() or finish() call.

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:43

Parameters

llvm::StringRef Line

void filterNode(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:95

Parameters

const llvm::symbolize::MarkupNode& Node

void finish()

Description

Records that the input stream has ended and writes any deferred output.

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:46

const llvm::symbolize::MarkupFilter::MMap*
getContainingMMap(uint64_t Addr) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:133

Parameters

uint64_t Addr

const llvm::symbolize::MarkupFilter::MMap*
getOverlappingMMap(
    const llvm::symbolize::MarkupFilter::MMap&
        Map) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:132

Parameters

const llvm::symbolize::MarkupFilter::MMap& Map

void highlight()

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:105

void highlightValue()

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:106

llvm::StringRef lineEnding() const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:137

Optional<uint64_t> parseAddr(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:116

Parameters

llvm::StringRef Str

Optional<SmallVector<uint8_t>> parseBuildID(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:119

Parameters

llvm::StringRef Str

Optional<uint64_t> parseFrameNumber(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:122

Parameters

llvm::StringRef Str

Optional<llvm::symbolize::MarkupFilter::MMap>
parseMMap(const llvm::symbolize::MarkupNode&
              Element) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:114

Parameters

const llvm::symbolize::MarkupNode& Element

Optional<std::string> parseMode(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:120

Parameters

llvm::StringRef Str

Optional<llvm::symbolize::MarkupFilter::Module>
parseModule(const llvm::symbolize::MarkupNode&
                Element) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:113

Parameters

const llvm::symbolize::MarkupNode& Element

Optional<uint64_t> parseModuleID(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:117

Parameters

llvm::StringRef Str

Optional<llvm::symbolize::MarkupFilter::PCType>
parsePCType(llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:121

Parameters

llvm::StringRef Str

Optional<uint64_t> parseSize(
    llvm::StringRef Str) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:118

Parameters

llvm::StringRef Str

void printRawElement(
    const llvm::symbolize::MarkupNode& Element)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:110

Parameters

const llvm::symbolize::MarkupNode& Element

void printValue(llvm::Twine Value)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:111

Parameters

llvm::Twine Value

void reportLocation(StringRef::iterator Loc) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:130

Parameters

StringRef::iterator Loc

void reportTypeError(
    llvm::StringRef Str,
    llvm::StringRef TypeName) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:129

Parameters

llvm::StringRef Str
llvm::StringRef TypeName

void resetColor()

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:108

void restoreColor()

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:107

bool tryBackTrace(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:100

Parameters

const llvm::symbolize::MarkupNode& Node

bool tryContextualElement(
    const llvm::symbolize::MarkupNode& Node,
    const SmallVector<
        llvm::symbolize::MarkupNode>&
        DeferredNodes)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:83

Parameters

const llvm::symbolize::MarkupNode& Node
const SmallVector<llvm::symbolize::MarkupNode>& DeferredNodes

bool tryData(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:101

Parameters

const llvm::symbolize::MarkupNode& Node

bool tryMMap(
    const llvm::symbolize::MarkupNode& Element,
    const SmallVector<
        llvm::symbolize::MarkupNode>&
        DeferredNodes)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:85

Parameters

const llvm::symbolize::MarkupNode& Element
const SmallVector<llvm::symbolize::MarkupNode>& DeferredNodes

bool tryModule(
    const llvm::symbolize::MarkupNode& Element,
    const SmallVector<
        llvm::symbolize::MarkupNode>&
        DeferredNodes)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:89

Parameters

const llvm::symbolize::MarkupNode& Element
const SmallVector<llvm::symbolize::MarkupNode>& DeferredNodes

bool tryPC(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:99

Parameters

const llvm::symbolize::MarkupNode& Node

bool tryPresentation(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:97

Parameters

const llvm::symbolize::MarkupNode& Node

bool tryReset(
    const llvm::symbolize::MarkupNode& Element,
    const SmallVector<
        llvm::symbolize::MarkupNode>&
        DeferredNodes)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:87

Parameters

const llvm::symbolize::MarkupNode& Element
const SmallVector<llvm::symbolize::MarkupNode>& DeferredNodes

bool trySGR(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:103

Parameters

const llvm::symbolize::MarkupNode& Node

bool trySymbol(
    const llvm::symbolize::MarkupNode& Node)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:98

Parameters

const llvm::symbolize::MarkupNode& Node