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)
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
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)
void beginModuleInfoLine(
const llvm::symbolize::MarkupFilter::Module*
M)
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:92
Parameters
¶bool checkNumFields(
const llvm::symbolize::MarkupNode& Element,
size_t Size) const
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
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
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
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()
void endAnyModuleInfoLine()
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:93
¶void filter(llvm::StringRef Line)
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)
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()
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
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
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()
void highlight()
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:105
¶void highlightValue()
void highlightValue()
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:106
¶llvm::StringRef lineEnding() const
llvm::StringRef lineEnding() const
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:137
¶Optional<uint64_t> parseAddr(
llvm::StringRef Str) const
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
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
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
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
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
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
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
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
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)
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)
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
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
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()
void resetColor()
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:108
¶void restoreColor()
void restoreColor()
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:107
¶bool tryBackTrace(
const llvm::symbolize::MarkupNode& Node)
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)
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)
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)
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)
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)
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)
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)
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)
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)
bool trySymbol(
const llvm::symbolize::MarkupNode& Node)
Declared at: llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h:98
Parameters
- const llvm::symbolize::MarkupNode& Node